OK - the ASP.NET is all using code behind which is mostly VB.NET (very similar to VB except enhanced OO capability as you probably know)
No matter what you program the code behind in it all eventually gets compiled down to Microsofts 'super duper' Common Language Runtime when a project is 'built/rebuilt'.
Each web app contains DLLs which are compiled (not like COM btw) as above. If I deploy an altered code behind page to the live environment then it will have no effect as it needs the corrosponding (and updated) DLL to work. Its when I replace the application DLL that the sessions are lost.
Its not impossible that there may be a virus etc. but I am 99.9% certain that this is not the cause as the same occurs on three other servers.