I had a customer a few years back who had gone through several stages of improvements to the way their system worked.
Initially they managed everything in Excel and it kind of worked, but it started getting a bit bloated and rather out of hand - well you can imagine the problems!
Then they got a team of developers in-house to improve the situation. How? Well - still with Excel but now with a swathe of Visual Basic which automated all sorts of stuff and did calculations for them and - oh it was marvelous how much more productive the staff were. Did I say it was still using Excel?
Then management wanted something more professional, because it was going to be sold as a product - not just used in-house. And no, they didn't see that coming apparently!
So when I got involved, I spent almost a week on site to see what some of the issues were, I watched them go about their tasks, I made lots of notes, I asked lots of questions. I spoke to potential customers and I spoke to existing users. I had lunch with them. I immersed myself in their world.
But when I actually tried to ask what users wanted - that was when I found that actually the people who used the new Excel setup were so happy with the improvements over the previous Excel version that they couldn't imagine how life could be even better. Some didn't even really want me to get involved because they felt that I might make things worse again.
Needless to say, the new solution had nothing to do with Excel and everything to do with what people were actually trying to achieve - it just needed someone from outside to get a grip on the roles and goals involved, and you can't do that in a complex environment until you really immerse yourself in their world.
Immerse yourself in their world and question everything. But there's no point in trying to get direction from the users themselves, because they have pretty much no idea.
EDIT What happened after:
While on site, I saw people lugging equipment around to test different bits of hardware. The solution was split:
1) all calculations done on a PC attached directly to some related equipment.
2) a remote PC running a custom built application (using Java+Swing) to manage data and results in a context specific way that really mapped onto the tasks and processes that the users needed.
Communicating via SOAP between users PC and the hardware PC meant no more lugging around, and geographically remote testing was suddenly possible. Data transfer issues into and out of Excel disappeared - which I had identified as being a time waster and error prone weak link, but which users had accepted unquestioned.
If I hadn't been on site, I doubt I would have found out that people were regularly carrying their PCs around or moving heavy equipment around in order to connect things up. Nobody would have thought to mention it! As a result of the new changes, all this heavy, humming equipment was able to be moved out of the office and into a separate room. Result: much quieter offices.
But users didn't know they needed quieter offices!