I started thinking about this last night because something similar happened with "moot". It used to mean a point that needed discussion or debate but now it indicates almost the opposite: something is pointless or academic to discuss. I'm just curious to know if this phenomenon is unique to English (or even American English) and if it happens often.
Yes to both your questions, semantic drift is one of the main ways in which language change occurs. It's the main reason why the word gay has changed its meaning so drastically in the last 50 years, and also why the word starve means to die specifically of hunger and not just generally 'to die' as it does in German (sterben). The non-English example of semantic drift that comes to me off the top of my head is the word lecker, which in German means something like delicious and refers specifically to food, whereas in Dutch/Afrikaans has evolved to just generally mean great/cool (so a German might be a little confused as to why Dutch people wish each other a "Delicious New Year" on the 1st of January).
I've also been told that semantic drift is one of the main barriers to Finnish people understanding Estonians, since a word in Estonian very often means something completely different in Finnish. But that's entirely anecdotal information.