Everything listed here is just what I have personally noticed, and makes joining/starting games a bit more easier. In order to play a game with the least amount of lag, try following these steps.
#1) If you have a Router (Hardware) you are running your internet connection through, be sure to open up your ports. Think the manual says something like 6100-6200?? Someone can correct this. Anyways, you need to open ports starting at the minimum of 6073. In my case, I have the 6000-6300 range open, and all works well. (I am not that paranoid about security.)
#2) It is not just about fast connections, but also, about fast computers. Clean up your computers so they run well. Close down all un-needed applications running. Close down your Instant Messaging and eMail Programs. Close your Web Browsers and your Video Recording software. Close down everything you can! These can stall your system, and produce stalls or lag in games.
#3) When hosting a game, be sure and bring up the connection list. If a player sits there for 30+ seconds trying to connect to a single person, obviously there is a problem somewhere. Boot them! Free up room for someone who has an easier time connecting to players. When you have a full game of people who can connect to everyone easily, the game runs pretty lag-free. Watch each player joining, and their times it takes to connect to other players. Just because they are trying to join, does not mean they ever will, and definately does not mean you will 'want' them in the game.
Look at how some people connect to players and join into a lobby IN 30 seconds, instead of taking 30 seconds just to connect to one player. Now those are the people you want to start games with. This doesn't mean they are going to have a fast PC and this doesn't mean the game will not be laggy, but it will almost garuntee that the lag will not be caused by connectivity issues.
#4) Monitor your lobby! If you notice someone with a ping in constant flux, or if they go from a green to yellow status, don't hesitate to kick them. Just don't kick everyone when a new player joins and everything goes to a yellow ping for a few seconds; this happens. If everyone stays yellow, it is most likely due to a bad connection with that newly joining player. Also, if a player joins and pings go from green to yellow, this is because of the recently joining player. Players or perhaps just yourself, do not have a good connection with them, and the overall connection suffers. Kick that newly joining player. You will want to maintain all green status pings at least under 200ms. I usually aim for <180ms in games.
#5) Joining a game is much like hosting a game. When you bring up the connections tab while joining, and see you are taking an overly long time to connect to another player/players, then you should just find another game which is easier to connect with. This will get you into an actual game much faster than waiting on one, which you may or may not connect with.
#6) If you notice a host is not aiming to start a good game, by allowing high ping players or others with horrid connections. Or perhaps they are allowing people to stay in the game who take 2 minutes to connect to another player, do not hesitate to leave the game and look for another game. Having a good host ensures a good game.
Well, these are just tips... actually, more like my personal thoughts and just how I play. Using these tactics, I have no issues hosting or playing games, and very rarely am in a game that lags badly. If anyone disagress with anything I have said, go ahead and voice your opinion. If anyone has anything to add to help other players host/join games more easily, go for it!
Good Luck!