The number of people voting for third party candidates is increasing, which is a good thing. There are more than two ways to approach governance. However, when voting for a third party candidate that lacks the campaign machinery and funding of a major party, it can feel like you are wasting your vote. In many cases, third party voters have a prefered major party candidate, and in close elections, there is pressure to vote for them. Some publications even blame third party voters for Hillary Clinton's loss in 2016.
There is a voting system that solves many of the problems with traditional voting, including third parties effecting the balance of major party candidates, its called an instant runoff.
In the instant run off system, voters get to rank all of the canidates running for an office. In the first round of tabulation, all voter's first choices are considered, the candidate with the lowest number of votes is eliminated. All of the votes that were assigned to the candidate with the least number of votes are reassigned to the next highest ranked candidate on the voters ballot who is still in the race. The process is repeated until there are only two candidates left, and a winner is declared.
Opponents to ranked voting seem to fall into two different sides, those who fear it will harm the control the two dominant parties hold and those that think instant runoff voting doesn't go far enough. One interesting proposal from those who don't think instant runoff voting doesn't go far enough is that multiple representitves should be elected to a seat, with their votes being weighted based on their percentage of the electorate.
Clearly there are better alternatives to our current system, wether they are a step twoards a more direct democracy or just allowing folks to vote inline with their concious rather than strategically.