The session will be destroyed if one of two things happens:
(1) you call session.abandon via the user clicking a "logout" button (or any other event, for that matter)
(2) all instances of the clients' browsers have been turned off.
#2 is the tricky one. If the user closes their browser, and has another instance open, but then opens yet another instance and comes back to your site, then your server will remember them, because the session cookie is still persisted on their browser.
How to solve this? Call session.abandon on the main page, and then start them up a new one. This can cause problems, too, though. Like if they just go "home", then I'm assuming that's where you'd call it, so that would wipe their session, which would be bad in this case.
So, maybe just have a "login" page or something that isn't the same page as "home", which is where you would call the session.abandon method, and give them no link to get back to that login page. In this case, it would take a concious effort on their part to end their session, and I think you'd be ok in that situation.
good luck!

paul