In response to this posting I’d like to comment on removal media and enterprise implementations.
I think you’d want to manage a central data store of the tags for all resources from any media—removal or not. The big question is how resources are managed when they move, get renamed, etc. Some removal media is not read-only. My external USB hard drive, which is rarely turned on, is a good example.
The data store should include metadata of the digital resource from the removal media—including a thumbnail so I can see information about the resource when the removal media is not available.
Another dimension, which further complicates the implementation, is an enterprise solution. Companies are still using shared file servers and other ill tools to manage their digital resources.
Notice I’m using the term digital resources. I want to tag(2find) many different types of resources: files, email, contacts, journal entries, notes, and many more.
Providing the appropriate APIs may help extend this functionality so I could write an interface for Outlook to tag Outlook’s digital resources. How about SharePoint? Companies are using SharePoint to store and manage digital resources—creating SharePoint lists to manage help desk information, problem logs, tasks, contacts and much more. In addition SharePoint is used for project plans, projects schedules and other project related files. The problem Sharepoint users still have is how to find stuff. Oh, it’s better than the file server, because SharePoint has better search/find capabilities. But, SharePoint still has the old folder filing mechanism. A single digital resource typically could be filed in multiple locations and usually gets filed in the worst location. With an enterprise tag2find I could select “my-project” tag and see every digital resource—every project plan, schedule, trouble call, contact and email associated with the project. Yes that would be a bit overwhelming, but is quickly resolved when I further filter it by other tags such as: “client-ABC” and “Internet connectivity issue”.
An enterprise solution requires management of how resources are retrieved and management of what appears for me the user. Therefore, when I tag a resource the system needs to determine who the tag is for---a specific user—a department—a project team—the entire corporation?
Where are the tags managed?--in a central data store. Perhaps an enterprise implementation is better suited as a web-based implementation (browser-based and/or web services). Ok, I'll stop here...

Craig