For developers frustrated with end users suffering from IKIWISI ("I'll know it when I see it"), let me share this story with you.
Around the year 2000 I had a house built by a developer who charged "cost plus 15%", meaning that he passed all his costs for material and labor on to me, and added 15%, which is how he was paid. This was great, because I've always thought that fixed-price agreements (in home-building, and in software development) lead to conflict, because in that situation the customer will try to get all they can for their money, while the provider will try to keep their costs to a minimum while still trying to keep the customer happy.
Back to my point though ... early on in the process, the developer laid the forms for the foundation of the house, the basement walls, and I came by for a review the night before they were going to pour the concrete. When I looked at the forms it was obvious to me that if we made a few "minor" changes (ahem, minor for me), the house would have much more value to me.
The actual changes are not relevant to this story, other than the part where they involved several hours of work to change the forms. But, because this made the finished product much more valuable to me, and because I (the customer) was paying the builder (the project manager) on a time and materials basis, we all easily agreed on the change.
That being said, I'm sure the people that had to change the forms (the developers) probably swore at me for four hours the next day, but I'm okay with that. Hey, I'm sorry that when I looked at the blueprints I didn't see something this incredibly obvious, but once I saw the almost-finished form I realized there was a much better way. This is IKIWISI in action. I saw it, and I knew it could be significantly better. And because the builder and the people doing the work were willing to make these changes, they were more valuable to me, they received a little more income than planned, and they got a great recommendation.
Now, getting back to software ... I think programmers face this situation a lot, especially when you're working on a user interface, and you have clients that really care about the product. The first thing I'll say is to try to make yourself more open to change, and also do what you can (like prototype the solution) to minimize IKIWISI.
Finally, I don't know if this helps, but I'll tell you one thing that's much worse: having clients that could care less about the product. Now that's demoralizing. Give me someone that cares any day.