A Straight-forward Solution
I have heard (but not seen) reports that Microsoft knew it was violating this company's patent and simply took what it saw as a calculated risk: If they sue, and they win, then we will settle out of court.
If that is true, and, as reported, the judge has an email from MS laying out this strategy, the solution is to invalidate 100% of Microsoft's own patents. They have to pay others who hold valid patents. They cannot make a cent from their own ever again.
I don't think anything less will put an end to calculated risk taking, and attempts to stall and delay until the other side goes broke.
If one is going to allow software patents, the cost of willfully violating them needs to be very high.