I'm currently involved in a project that has a number of related content types. Part of the initial phase of the project was to define the information architecture (IA) for all the types so that we can squeeze all the functionality out of them that we can once we implement everything in Drupal.
The task basically was broken down into 2 sub-tasks: come up with a final list of content types and plan out the Node Reference fields. To accomplish this, we had several meetings with the client and spent a considerable amount of time in identifying places where we could combine types and eliminate others. The second sub-task involved determining where best to implement the multitude of Node Reference CCK fields that we'd be using. This involved some Views prototyping to make sure we could always drill down to the data we wanted.
In the end, the thing that made the biggest difference for us was simply diagramming the whole thing. Providing a visual representation of the various types and their relationships enabled us to quickly spot potential problem areas and data duplication issues.
So, next time you need to plan out some content types - be sure to have a pencil and some paper handy.