Just don't work for crap clients.
If you do, you deserve what you get I'm afraid. If you're good enough you'll be able to be selective about who you work for. If you're not good enough and have to take on shit work, that's your fault and you need to get better.