"A user is somebody who tells you what they want, the day you give them what they asked for."

This really rings true to anyone who has practiced agile in one form or the other. Good thing iteration n+1 exists!

It does raise the issue: how can we work with the user to get it (almost!) right the first time? What's your requirements gathering technic?