It is very difficult for a "3rd party" candidate to succeed in a statewide or nationwide political race. For example, when Ralph Nader ran against Al Gore and George W. Bush, many people that wanted to vote against Bush dared not vote for Nader because they didn't want to rob Gore of votes needed to win. The same thing happened when Ross Perot ran against Clinton and Bush. Perot took votes that might have otherwise gone to Bush, thus giving the race to Clinton.
The solution is "preference choice voting" or "instant runoff voting." Under this voting scheme, a voter can indicate their ordered preference for candidates. They can give their first choice to the 3rd party candidate (for example) and then their second choice to another major party candidate. This allows people to avoid feeling like they are "wasting" their vote on a candidate with little choice of winning.
Under this voting system, we could see how much support a 3rd party candidate really has. Their ideas could gain more traction when people are behind those ideas. When the votes are tallied and your first choice candidate doesn't win (and no other candidate already has the majority of votes needed for victory) your vote will be re-tallied for your second choice candidate. For more information and a live demo of how this voting system works, check out www.demochoice.org.
So what prevents us from trying our preference choice voting? It complicates the voting process. I have to find a way to indicate my first, second, and third choice candidates. During some of the closely contested elections (e.g. Florida 2000) we've seen how difficult it can be for voters to cast a vote on a traditional ballot. Surely we can find a way around that complication!