I use a contract mainly to describe my deliverables.
This way, the customer knows what he is getting, and when they throw in the other stuff they want done I can charge them because it is out of scope.
Also, as long as I slightly over deliver, they have no complaints.
Its simply best to have it all in black and white.
If I hire you to publish a book, and you are thinking "Hell yes, Klindle here I come, money in the bank" and publish a kindle book, and I thought you meant publish a real book, I am not going to be happy.
You have to handle expectations, and saying, "I'm sorry, that is not on my scope of work" is a heck of a lot easier and better than saying "I don't want to fuck with that shit for nothing, what the hell is the matter with you?"