When is the best time to show the work you are doing to your customer? In an ideal world with ideal clients the answer would be simple - as early as possible. Clients could provide valuable feedback before you went to far in the wrong direction.
Unfortunately in real life I find this approach to be counterproductive. Most (if not all) of the times as soon as I show early prototype to the client a process we internally call "moving pixels" begins. Color and/or size of some text on some unimportant page is wrong, that empty shopping cart text is not clear enough, these 2 buttons should be reordered, etc. Right after the first demo actual feature development stops and polishing of cosmetic stuff begins.
On the other hand in cases when you hold off demonstration as long as possible clients become impatient, they could suffer a heart attack when they finally see something and it's not 100% what they've expected, then you could suffer a heart attack when you hear that your product sucks, you suck and everyone you know and care about suck.
Does anyone have a universal recipe on how to balance this process? I've settled on dealing with "pixel moving" but I don't like it to the point I want to give up all contract work altogether.