If the project is a smaller one, then the developer is supposed to be acting in an analyst-developer type role. In my fairly limited experience the analyst part tends to take a back seat in these smaller projects.
I believe, though people are free to disagree, that it’s on the people developing the solution to ensure it satisfies the users needs. If the user is jumping to a solution, then it’s up to the team to take a step back and ensure the problem has been satisfactorily defined.
Note: I work on internal business apps used in a large corporation, and I have never worked on consumer facing apps.
That usually either gives the implementor enough information to wholeheartedly agree with the proposed solution, or to suggest something more appropriate.