You will need Views, CCK and Link contrib modules so go get them first (need I mention the use of a test site?). This is for Drupal 5.
A weakness of this approach is that it will only display everything as a flat list so you can't nest terms. I am unsure if this can be overcome but it's working for a friend for now while we work out what he ultimately wants on his site.
Thanks to Jeff Eaton for his cryptic comment on how to approach this when I asked him;
use taxonomy, then add an argument for taxonomy term to the view, and use "summary view" for when no term is passed in
and thanks to Earl Miles for pointing out a cleaner approach to first attempt.