Hi Folks
I've seen lots of people with this problem and had it myself, having solved it for myself I thought I'd post my issue on here in case it helps anyone.
The problem was that a session variable wasn't being maintained across pages and I read all the stuff here http://www.aspfaq.com/2157 and it didn't help me.
This may not solve everyones issue but it sorted mine and obviously it doesn't apply to IIS 5:
You should check is how many worker processes are you running on the website. I noticed lots people talking about worker processes being recycled and that killing session vars, hence I realised there is a connection. I run 2 processes per website and found that what was happening was:
1) You create the session var, this will associate it with a particular process ID
2) When you refresh the page you may or may not use same process ID so the session var seems to appear or disappear.
Once I stopped using multiple processes for this one website it sorted it, I didn't like but I couldn't see another solution if I wanted to continue to use session variables
Hope this helps someone