I have a collection of items that the user needs to group/categorize in several ways. For the sake of an example, let\'s say it\'s a collection of cars and the user wants to cat
Ok, well, I tend to go on about this too much, but Tagging is just an example of what you can do with a triple graph, eg using RDF. [Insert Link To Wikipedia]. Now I know you said that tags are not enough, based on requirements for nesting, but there is no reason you cannot further "tag tags" as children of eachother.
Car|Tagged_with|Red
Red|Is_child_of|Colours
This way your data remains ultra-flexible, and really the divide between what is data, and what is metadata becomes blurred.