If you come from linux or Windows and move to the Mac, you’ll find yourself almost never using cmd + tab for window switching. Why? Because it isn’t really a window switcher! It’s an application switcher, where each application has associated with it a unique “primary” window. So when you cmd + tab it takes you only to the primary window of the application and you can’t switch to other windows of an application using cmd + tab. “Primary” window, you say? Exactly. There is no such thing. If I have open a slew of browser windows, none of them is the primary one. Likewise for most other apps. And so cmd + tab becomes utterly useless.
The only option: replace it. I was too lazy to look before but this morning I took some time and I’ve settled with Witch. It’s a proper window (not application) switcher. I’ve set the hotkey to be cmd + tab so that it replaces the built in (crummy) cmd + tab of OS X. You can have it show only windows on the active space or windows on all spaces. You can have a little overlay on the window icon showing which space it lives on, you can set the size of the switcher overlay and its item entries (icon and text), their color, shadows, etc. It’s pretty configurable. The only thing I find sorely missing is the ability to cancel the cmd + tab by pressing escape. In place of that you can set a cancel button at the bottom of the overlay, which works fine enough, but it’s not as fast or slick as just pressing escape.

The only drawback–it costs 14 bucks (Canadian and I think US). That’s too much to be asking for an application switcher, if you ask me. I’m currently using a trial version, so we’ll see if I feel compelled enough to purchase it. (Coming from linux, I’m almost never compelled to purchase software like this.) If you’ve got better alternatives, leave a post here and let me know!