There are some simple changes which make pretty well understood improvements.
For example rank voting. You rank the candidates when you vote. When counting, you count all the votes for each candidate. You eliminate the candidate with the fewest votes. Everyone who had that candidate as a first choice reallocates their votes to their second choice. Repeat until there's a winner.
Suddenly it's okay to vote for that third party, because through rank voting you can ensure that your third party vote does not end up propping up the candidate you like the least.