I took a Study Skills course in the summer before my first year of University... many many moons ago. One of the topics that we covered was on Memory. Terry, the instructor, said something very profound that I take with me to this very day:
"If you don't remember someone's name, it means you didn't bother to learn it in the first place."
I was a bit put off by that at first, as I'm sure the other participants were as well. But on reflection, I realize that I was offended because it was true and it hit too close to home.
Brain damage aside, it's literally impossible to forget the name of someone who is important to you or has some kind of meaning to you, whether positive or negative. You'll always remember the names of people you like; you'll always remember the names of people you hate.
It, then, becomes a matter of having respect for people and valuing them enough that they have a name in your mind. No one deserves to be a nothing even for the short time they spend interacting with you. Admitting out loud that "I'm bad with names" is tantamount to saying "You're not important to me; you're not worth it for me to even bother trying to remember the ONE key piece of information about you."
No it's not a fashionable thing to say. It's not a favorable trait to have. It's an excuse. And a really terrible one at that.
Once I accepted that truth and began to consciously value people the moment I met them, every single name that I actually learned, stuck.