With regard to dealing with customers I would suggest the following:
1) Honesty, integrity and openness is absolute.
2) Mistakes, we all make them and when you do, put your hand up and admit to it.
3) Keep the customer in the loop at all times and Communicate at every level and where possible discuss all options irrespective of how crazy they may seem.
It has worked for me as when I get a call from one of my customers they just say 'do the job' money is not mentioned. All because they know I am absolutely honest and open and if I repeat if there is a problem they know I will return to sort it without cost.
Hope this helps on this particular element of your issue.