Quite frankly, I've never seen that in 14 years of using ASP.
You must have *something* in your code that is clearing one or all of the session variables.
I don't understand this comment:
if the session doesn't exist it created it
That's always true. You can't just check for the session, you check for a particular session variable.
I have been known to use stuff like
Session("sessionStarted") = Now()
And then on each page I can dump out
and get a feel for when, for example, I have inadvertently re-started the session.