I wish I could vote this up 100 times. The first rule of requirements gathering: the customer doesn't know what they want. You have to tell them.
There are numerous examples of programmers/providers figuring that they know what the customer needs. They're called enterprise software.