Let's say your typical software development process works something like this:
define -> build -> test -> ship
In each phase, there are lots of references thrown around to "the customer" or "our users".
"Our customers would never want a widget button!"
"Users hate large downloads, so let's not require the .NET 2 Framework."
"What kind of a user would do that?! That's not a good test!"
In the end, despite the user personas, the focus groups, the feedback, none of us really knows what the user WANTS. At best we know what users want you to think they want. Your "customer" is a vague notion, a mere tool for the person positing the argument. So let's not talk about "users" and "customers". Let's talk instead about the real stakeholders. In every phase of the software development process, your actual customer is the next person in line. That's the person who really cares about how well you do your job. So in the define step, the person building this software is your REAL customer. In the build step, the tester is your REAL customer. In the test step, well, there your real customers are the actual people who use your product.