I'm not saying to write unfair contracts, just one that says "contractor will work with the client to implement X in exchange for Y$ per hour". Then, when they hire a consultant that gives them a 5000 page report detailing why they'll get 1000% better performance if they prefix all their classes with the client companies name, don't argue with them; just do it. If you were a carpenter and the homeowners changed their minds from White #001042051 to White #001042052, you wouldn't argue back that the difference is physically imperceivable to the human eye, you'd add a molecule of black to ten gallons of white and charge for it.
I'm not arguing that you should be out to do a shitty job and suck money from customers, just that if they want to piss money away, let them piss some on you.