I think with weddings, showers, and graduation, there is so much going on you normally don't get the opportunity to say "thank you" in person, so it is polite to send a note. With birthdays and Christmas, more than likely, the gift is being handed to you, and you can hug them and say thank you in person.