Session information is stored "InProc" by default. You can check the
web.config file to see if that is how it is setup for your application.
This means that the session information is stored within the aspnet
worker process (aspnet_wp.exe or w3wp.exe depending on your OS). If the
process is recycled for any reason that session information will be
lost. Also if your application is setup to run in a web garden or to
use multiple worker processes, session information would not be the
same amongst all the processes.
Take a look here for more information:
http://support.microsoft.com/kb/307598#2