There's also a difference between the opinion of one user vs the collective opinions of users as a whole. In most software these are conflicting goals. For example, iOS can't just add random features willy-nilly to satisfy an individual's feedback. So the product management needs to come in between developers and users to aggregate user demands. You'll have to make everyone a little bit unhappy to make users collectively happier. One of the reasons I like extensible software is that those two goals are no longer conflicting. Hopefully you know what I mean when you see Jenkins (http://jenkins-ci.org/)
I do share the joy of "caring about your users," there's something very special in knowing this one person/user, understanding his/her needs, solving it, and making him/her happy. We obviously do that through software, but this drive is universal.