You don't vote for just the one person you want. You rank the candidates in the order that you prefer them, and the system figures in viability to ensure only a single vote for one of your candidates is counted.
The side effect is that people stop being pragmatic, and start actually voting for the people representing the issues they believe in. In time, the minor candidates then become viable and get elected.
On edit: Gotta mention this also figures in a proportional voting system too and its a bit more complicated. There are actually systems like this that are a lot more stripped down that STV, which has some more nuts and bolts. There is also preferential voting:
http://en.wikipedia.org/wiki/Preferential_votingIf we had preferential voting in 2000, would more people here (especially those that complain about Nader) actually have voted for him? On the other hand, with preferential voting, its easy to imagine a scenario where either Bill Clinton lost (Perots votes defaulted to Bush) or Perot won (for people who considered him more viable). It would definitely impact the system.