My personal rule is, as long as they knew before hand, and they have a legitimate reason to be absent, they get full experience. Hey, it's a game, I realize that. It's not the most important thing. "Hey, I got some vacation time finally comming up, and I was thinking of heading to florida for a couple weeks" or "Hey, I'm gonna go visit family over thanksgiving" or something, that's fine. As long as they tell me at least at the gaming session prior. Now, an excuse like "Hey, there is this show on TV I really wanna see that night..." isn't gonna cut it...
My basic table for XP giving conditions:
Present: Full XP
Prior arangements and reason: Full XP
Prior arangements but no reason: Half XP
Last minute notification with good reason (Sick, family crisis, etc): Full XP
Last minute notification with semi-good reason (Hey, guys... Work called, they wanted to know if I could come in for a few hours, and they were gonna pay overtime, so...): Half XP
No notification at all: No XP
No notification at all, but later prior good reason, and they just weren't able to call: Half to full XP, depending on story.
Basicly, I don't penalize players for not showing up. Things happen, I know that. Been there, done that.
What I do penalize them for is not having the courtesy to show up if they don't have a reason not to, or for not telling anyone they werent going to be there with enough time to make arangements.