I am not a native speaker. From my reading and verbal communication, I came to believe that striking a chord means connecting to someone at an emotional level. However, I recently used it somewhere and someone (an American, if relevant) told me that it actually means pissing someone off (quite the opposite of what I thought). Does it mean both or I just used the wrong expression? Or does it have different meanings in British, American and Aussie varieties?
It means to hit on a topic that is of importance to person you are speaking to. You can strike a chord either positively or negatively. Positively if you say something that impresses/flatters/connects (positively) with them. Negatively if you speak ill about something that is of importance to them or something that rubs them in the wrong way.
To me its like you can hear a great chord in music or you can hear a chord that is particularly distasteful.
Edit: I think its usually positive, but I've heard it both ways. You wouldn't call something that sounds bad a chord in music unless it was sarcastic, but it is done.
Strike or touch a chord (with somebody) means to say or do something that makes people feel sympathy or enthusiasm, e.g., the speaker had obviously struck a chord with his audience. I've heard people saying: "He struck the wrong chord", maybe that's what your friend was referring to, but I don't really know if it's right.
You don't say whether the other person was a native English speaker or not. Not that it matters as even native speakers can be mistaken. In a word, you are right. The other person is wrong. It does not mean to annoy (better than p.. off!). The person who said this was either wrong, mistaken or making mischief. Was it April Fool's Day by any chance?