As much as these suck, I can tell you from working on corporate sites that this is often done for security compliance. One site we're working on now has about four different conditions that can expire a session earlier than the user might expect; I can only imagine how irritating this must be for them, and how many sales the company will lose because of it.