Why don't you store the login time for each user in a table and then also set a session variable, and after like 90 minutes or something have that var expire and kick them back to the login page, where they log in again, resetting the variables. Then you can be sure that if some session id is hijacked, the session var will be too old, or not set, in which case you kick back to the login screen?
This means for each user there will be only one other entry in the database, and thats not such a heavy load, and you will update it with logins.
how does this sound?
-nate