Yeah, Dridzt is right, it will only fire on a "cold" login so to speak. If you're using PLAYER_ALIVE to know when talents are available you can register for PLAYER_ENTERING_WORLD and when it fires do this:
lua Code:
if (GetNumTalentTabs() == 0) then
frame:RegisterEvent("PLAYER_ALIVE")
else
-- talents are available already, so this was probably a /reload.
end