The lesson from this story translates extremely well into project management: You have to manage stakeholder expectations through proactive communication.
Actually, the situation when we and our customers look at the same thing very differently is nothing uncommon. That’s probably bread and butter of every project manager. Depending on methodology you use the answer will differ: you’ll go for detailed specification and formal requirement gathering process if you use one of heavy-weight methodologies or you’ll choose short iterations and frequent verifications by the customer if you’re agile. It doesn’t really matter.
The clue here is communication. It may happen very intensively on the beginning of the project and later you can refer to agreed specifications. It may be scattered with the same intensity over whole project. But whenever any detail is ambiguous we should communicate to get rid of ambiguity. Unfortunately we so often choose to make some (usually wrong) assumptions instead of communicate.
Now, forget about project management and think about life generally and the advice will be the same. It happens oh so often we’re angry because someone doesn’t guess what we’re thinking or we expect something is perfectly clear while it was stated in ambiguous way or wasn’t stated at all. Communicating instead of assuming is almost always a better choice.