One other way to avoid a nasty customer is to recognise their demeanour and state your rate higher than they would want to pay.

We inherited a corporate who was the rudest and most demanding asshole I have met. For 20% less than anyone else he wanted free faxing, free printing, delivered print jobs, free beer vouchers at local club. On his second visit, I raised his rate by $30 charged $1 per sheet for,all his printing, then he didn't like the format and wanted the 30 pages again. No problem.
His company was invoiced for nearly $100 more than previous visit. They decided to cancel their future bookings. Everyone is happy now.