The Customer is Always Right, Right?
Always Put Your Customers Needs First
You always need to do everything within your power to satisfy your customers. That being said, there are going to be certain circumstances in which there is absolutely nothing else you can do to make a bad situation better. No matter who's fault it is, if you do enough business sooner or later you are going to experience a situation in which you are not able to solve a specific problem.
The More You Try The Worse It Gets
Especially when you are working on older homes, when you start digging into an issue it is like pulling a thread on a sweater. As you keep feebly attempting to make the situation better you are slowly rebuilding the entire house. If the problem lays outside your initial scope of work, it is best to just leave it be. Yes, many times a customer will not accept this an will blame you for such things as the framing on their house causing their roof to look wavy. If you can no reliably, quickly, and cheaply fix the problem do not dare give the customer any inclination that you will even try. Remember that they do not know as much about construction as you do and it is your responsibility to educate and protect them. Just because something doesn't look right to them doesn't mean that it should be changed if it will potentially cause a structural issue.
On The Other Hand
When an honest mistake is made, just fix it. Even if it was a simple miscommunication, if you are at all responsible you need to suck it up and learn from the mistake. Sometimes, it is going to hurt pretty bad. You will lose money on a job and the whole world can feel like it is going to end. But it wont, and you will get over it pretty quickly. If you do nothing, and the customer is not satisfied with the work that you completed for them, then long term it is going to hurt you a lot more. They wont get over it or forget it so easily, because they will have to look at it everyday. That means they will also tell everyone they know about the "wrongdoing", whether or not is justified. Treat it like you are ripping off a band aid, it is the best way to deal with some mistakes.