I'm not surprised you had problems with a 20GB database but I am guessing that most WWWThreads users only tens of thousands of posts rather than millions so the issue should not be too bad.
In addition, although the actual query may take longer to run, using joins can reduce the number of overall queries and 'in-between' code.
Finally, joins can make difficult tasks easy (which is why I used them for the forum drop-down list).
Your comments are all valid and true but not necesarliy (unless you are Sony) relevant to WWWThreads. If the joins are made on primary key fields which themselves are used as foreign keys in other tables then the performance impact for WWWThreads would be minimal. For example, an autonumber field in the users' table which is the primary key in the table could provide an efficient join to the posts table if the user is identified in that table by their unique ID.
Simon (Happy to debate these things)
Simon Wolf,
Webmaster,
Access All Areas
http://www.athree.com