We already have a feature like this: memories.
Why not create pseudo-metadata fields for "memory keywords", "memory description" and "memory security". When the entry is presented to the client, it can extract this data from the memories table and present it to the user as metadata (not very difficult). Then... when the entry is submitted, if that metadata is present, it is then converted back to the memories table.
This will allow people to categorize their own stuff, and still add other people's memories in the conventional way. Then... once the ability to style the memories pages is active... everything will work like I discussed before. Since all of this activity will take place in log.cgi... it shouldn't be too difficult to add.
Brad... if you wanna send me the memories table structure and a copy of log.cgi... I could probably hack it together in no time flat.