The following is not a serious attempt to provide any insight. I read your post and went to watch a TV soap. This is something I just wondered about while watching Tv, and typing it out... :) May be totally out of context for your purpose...still...do have a read.
Database Parts:
1. Core DB Tables (The tables everyone uses; universal)
2. User Tables (users define the tables, fields,etc. and manage the data)
(2) can be implemented in a hierarchical, Network way:
2.1 Tables/Indices maintaing which users have which tables (simplest example: user "Manish" has tables "manish1","cool1", "wow1"). You can allow Total Heirarchy, even maintaining multiple indices for users on the basis of their departments, ranks, alphabetical names,etc.etc.
2.2 Now instead of each table specfying the metadata itself, you can have a separate table created for each user table. e.g. If the user creates the table "cool", store the metadata information in the table "metadata-cool". This way it'd be a snap to store the metadata information in a Standardized way. The Standard Table meta data format may contain Field Names in the actual table, a description (text) of each field, and any other notes, or any information you'd like to store for optimization.
2.3 Now if you have separate tables for meta data information, why not have indices based on meta data too?
So finally you have these minimum structures
A. Tables/Indices pointing to user tables -- mainly pointing to tables created by a particular user. These indices are heirachical. These point to C.
B. Tables/Indices pointing to user metadata tables -- mainly pointing to tables containing a specific metadata information. These may/may not be heirachical. These can even define relations between the current user's data and any bindings to another's data. These point to C.
C. Tables containing metadata information about the tables created by the users. These (should) be in a standard format -- necessary for B. These point to D.
D. Tables containing actual data entered by users. These are the tables managed by the users themselves.
I guess the above, if implmented after much though and design, will be scalable (with optimizations of course) and very flexible.
Tables C can even contain any references back to the Core DB Tables and define any bindings/contraints difficult to put in the user database tables D themselves.
Thats the simplest solution I can propose....do tell me if this is too simple for your purpose...or completely out of context...? :)