The main reason for this to happen is a change in global.asa. Not only when a human physically changes the file, but it has been known to be triggered by FrontPage Server Extensions, Index Server, several varieties of anti-virus software, and even file replication software. If you are having trouble tracking down the event that caused the problem (e.g. in the Windows Event logs and IIS' own log files), check the last modified date/time of global.asa, and see if it was changed at around that time. This should at least give you a bit of a direction in finding out what happened.
A few other causes: IIS is reset, the application is unloaded / re-created within Internet Services Manager, or if the web server is rebooted (obviously).
In any of these events, the values held in sessions active at that point, and all application variables, will disappear. The sessions are gone. The application variables may be gone forever, depending on how they are initially populated, and if your application has been coded in such a way that it recovers from this gracefully. For information on how to do this, see
Article #2297.
If your problem seems to be isolated to session variables, see
Article #2157.