I agree that tough terms are good at filtering them out. You might even have to be a little aloof, but not outright rude. Things like pay up front, by a certain date, is great for this.
As anyone who has worked in retail or has had customer interactions can attest to, individual customers can be very wrong.
Some of the best advice I've seen in a while.
In my situation, most clients/users are amazing, understanding, and appreciate the work we're doing.
Between 5% and 10% are insane. In my very small part of the market, I've learned that most horrible clients will be either very small (1-2 employee businesses or family operations) or enterprise level with sloppy internal policies. I try to catch on early and tweak the terms to: a) discourage them from using us b) insulate us from their hellish behavior.