I would host a game, one friend would be able to join, then the other friends who were trying to get into the game would get "cannot connect to peer" message.
So first one gets in, others get locked out. This was true in both direct connect and gamespy multiplayer.
We worked around it by 'allowing' the ip addresses of our friends through software firewalls (such as zonealarm). I wouldnt have to do anything (I couldnt do anything about that bug anyways), but the people trying to join my game would have to know each other's IPs, and set up their firewalls to allow those IPs through.
Those people with static addresses would be ok on subsequent joins/games, since the friends who had allowed their IP address through still had it set up in their firewall, but those on dialup who had a new IP address would have to get their IP 'unblocked' on the other peer's firewalls.
If you're playing with people that you know and are friends with, try making sure that everyone knows each other's ip, then allowing it through their software firewall as a trusted IP. then having people join. It's definitely not the solution, and it wont work for games with strangers, but I'm curious if this works for others too.