It is my personal philosophy that one of the most significant things you do in interacting with other people every day is using their names. It is therefore absolutely crucial, if the relationship is of any value to you whatsoever, that you get each person's name right. Names are a very personal thing, they are yours for your whole life (unless you change them). Names are given to you at birth by your parents, and are your unique identifier among siblings, relatives or friends. It doesn't matter that people may not appear to take it personally when you mess up their name, or even that they might truly not take it personally. If you get one thing right, make it their name. Saying it's Tuesday when it's really Wednesday is funny, calling someone Lori when her name is Lauren is not. Repeat offenders of mispronouncing someone's name shows a lack of effort to remedy the situation, and blowing it off or laughing about it is just downright rude.
Everybody make mistakes, and I'm not saying that you're a bad person if you make a mistake. I just think it is of special importance to get a person's name right. Unlike philosophy or business, where the right answer depends on the scenario, with names, there is an absolute right answer, which means there are plenty of wrong answers. And asking someone to check your work is a lot more straightforward when it comes to names. "Did I say your name right?" is a much easier question to answer than "Did I do my math right?" or "Is this the right decision?"
Difficult or unusual names are no exception. Americans have somehow become comfortable with messing up international names, as if to say, if I'm not familiar with your name, it is excusable for me to consistently get it wrong. I think this is totally unacceptable, and it needs to change. And it shouldn't be driven by the person whose name gets mispronounced all the time, they probably get tired of explaining it or correcting it. The fix should come from the person who mispronounces it.
Here is my recommendation. When you meet someone with a difficult or unusual name, verify that you heard the name correctly with that person. Repeat it back to him or her, asking if you pronounced it correctly. If he/she indicates that its not correct, or slightly off, ask the person to spell it or write it down. Visualize the name, and ask him/her to say it again as you visualize it. Break it down into syllables if need be.
Another tactic is to think of a word that rhymes with the name. I met a guy named Sager, and it was obvious that people struggled with his name, because when I asked him to verify I was saying it correctly, he helped me out. He said it was like "lager" with an "S". What a difference! It is so easy to remember that way! I was glad that he helped me out, and I think that's a smart move for people with unusual or international names. Now, I have no excuse for getting his name wrong, and I don't. But I don't necessarily think the onus should be on the person with the difficult/unusual name, it should be on the people learning the name, to figure out how to say it right.
Once you get a grip on the name, make sure to repeat it in the conversation to help your memory, or practice it after you've walked away. If you happen to have a friend with you that doesn't know who you are talking to, you can introduce the two people and use that as another opportunity to practice the name. Even if your friend does know that person, you can weave it in by telling your friend what you and so-and-so were just discussing.
Here's another clue. If others around you are pronouncing the name differently, you might be saying it wrong. You could ask one of the people saying it differently, to see what they say. But they might be saying it wrong, and you might be correct. You can sometimes gage how confident they are that they are saying it correctly, and by asking may help them be more aware, if they really are saying it wrong. I think the best thing to do is to ask the person directly, especially if you have not verified that you are saying it right. Just say, "Hey, some people call you ____, but I was saying your name as ____. Can you tell me how to say your name correctly so I can make sure to get it right?" This shows that you are making an extra effort and are conscious of the importance of that person's name. That's not enough, on its own, of course. Once you have verified how to say it, you need to get it right going forward.
An even easier thing to do is to spell a person's name correctly in an email. With technology today, there is absolutely no excuse for misspelling a person's name. If you have a business card, an email from them, or if they are listed in the company address book, the spelling is right there in front of you. Or, maybe you're connecting through LinkedIn or facebook and can find the person's name that way. Again, if you're really not sure, I think it is worthwhile to ask. "Did I spell your name correctly? We've only talked on the phone so I wasn't sure how to spell your name. Please let me know so I can correct it in future communications."
I know it may seem like a little thing, but it's really not. When you're on a first name basis with people, you should be saying and spelling their names correctly, end of story. It is not funny, and it is not okay, to brush over a person's name as if it is unimportant.