Possible reasons, off the top of my head:
1. Being approached by a recruiter or hiring manager and end up being given an offer you can't refuse (eg much more money, dream job, etc).
2. Your spouse or significant other has to move to another city for their job, you don't want to leave them, and your current employer won't let you work remotely.
2a. Ditto with needing to move to care for an older and/or ill family member.
3. A shift of passion into a new career.
4. Health problems that cause such an extended leave of absence that you may as well leave.
5. I've encountered some managers who are leery of people who have spent "too long" at one place, wondering, eg "Why did s/he stay there for ten years? Did this person just find a spot to coast and collect a paycheck? Why hasn't s/he moved on to bigger and better things?" I think this line of thinking is just as knee-jerk as being leery of "job hoppers".