I just had a small debate about this with some friends of mine. Let's imagine you live in a battleground state, and for the sake of argument, let's also assume that you're in one of the 48 states that are "winner take all" in that they assign all of their electoral college votes to the overall popular vote winner in that state.
Say that state is Ohio. In 2012, the popular vote in Ohio was as follows (Source: Politico):
B. Obama 50.1%
M. Romney 48.2%
G. Johnson 0.9%
J. Stein 0.3%
Let's say you're much more aligned with the Green Party platform. Why wouldn't you vote for Jill Stein?
The answer is because your vote would likely otherwise go to Barack Obama, as the next closest candidate. So you're taking a vote away from Obama and putting it toward a candidate that has no chance of winning.
If enough people do this, the second place candidate would win, in this case Mitt Romney. As a Green supporter, this would likely be the worst case scenario result. And yet, unintuitive as it is, your vote contributed to the candidate on the opposite side winning.
"But if enough people voted Green, they would win," some cry. OK. Historically speaking, the Greens have averaged around this result... likely no more than 3% in any given state election. Do you really think that they're going to multiply their votes by several orders of magnitude by election day?
This isn't the case in every electoral system; for example, in a Parliamentary system such as Canada's, you vote for your local MP, who runs on the basis of a riding, for which there are usually several within a city. The party that wins the most MP seats gets to form a government (PM, etc.) So the election becomes a much more local affair, rather than being a winner-take-all battle among the entire province, and results in practice in a multi-party system. Unfortunately, that's just not how US presidential elections work. The ridings are the size of an entire state, so your vote has less of an impact.