Drupal does it better than any I've other seen. When a user makes a post, they are presented with a list of categories. They can select from those categories - more than one of them.
If you look at my site
http://othehorror.com you'll see how the stories are sorted into appropriate places. A review of a Stephen King book shows up under Stephen King and under book reviews. If it happened to be a ghost story too, it would show up there.