Modern Warfare 2, even on the PC, uses a peer-to-peer model for multiplayer. If there are no games within a certain latency limit of you (I think it's around 100-150 ms) the game will attempt to make a new game with you as the host. If enough other people in your area are also looking for a game, they will join your lobby and you will have the chance to play with them.
However, if there aren't any players in your area trying to play Modern Warfare 2 in the game mode that you've chosen, you'll essentially wait forever for other people to show up. You can try to fix this in a couple of ways, but essentially unless there are people playing near you, you won't find a game lobby. This is complicated by the fact that far fewer people are playing Modern Warfare 2 compared to other games in the CoD series.
A couple of things to try nonetheless:
- Modern Warfare 2 segregates players based on the game type they want to play. Team Deathmatch is generally the favorite, so if you're trying to play some other game mode, you might consider trying a more popular one instead.
- If there's anything else going on with your connection (ie, people you live with watching Netflix, or downloading large files) try to reduce this. This can improve your latency and give you a wider area to search for games in.
Beyond that, it's more just a matter of whether people in your region are interested in playing a game of Modern Warfare 2 or not. Peak times seem to be in the evenings.
Left4Dead uses a dedicated server architecture, and is a lot more forgiving in terms of latency, so finding a game is quite a bit easier. It also has more of a following even this far after release. Starcraft 2 can tolerate much higher latencies and is also quite a bit more popular than Modern Warfare 2 at this point.