The crash you're describing is happening in kernel32.dll - this might indicate that this is not a crash inside your managed code, but rather in the .NET engine itself (ugh) - in which case things like verifying precompiler paths etc. would not yield any positive results (IMHO).
I would suggest you try resolving this issue via "binary search" (for the culprit) :-). As the first "iteration", I would create a trivial aspx page (/Test.aspx), keep the debug mode disabled and try to hit the page (no code-behind, just basic HTML with title and Hello, world body). This will verify ASP.NET is installed and working properly on your IIS server.
If this simplest page fails again, I suggest exactly what @JSC mentioned in comments: re-register ASP.NET on IIS:
rem (reregister ASP.NET in IIS)
rem (run as administrator!)
%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i
Once the simplest page is running, I would add simple code-behind, try that. Once code-behind is running, I would try updating the real starting page of your application by stripping ALL code-behind, leave only the markup and try hitting the page - yes, it will look horrible but at least it might display :-). Afterwards, I would try adding only the initialization logic, see how that goes...
Essentially, you need to find whatever "thing" in your application is causing the crash. I presume the two extremes are: markup + no code behind = works, markup + all code behind = crashes; binary search "approach" would enable half of your code, see if it still displays (we are not worrying about functionality right now - it will not behave as expected, of course). If it does not display, disable the second half of the first half (i.e. only a quarter of your code will be active), try that. Keep going until you restrict your search to the problematic area...
Another approach I would suggest is to install Server 2003 (IIS6) / Server 2008 (IIS7) on a virtual machine - VirtualPC, VMWare, VirtualBox (if you don't have access to MSDN downloads of server images, you can always download trials - Server 2008 trial is good for 60 days plus two "resets"). After installing clean OS in a virtual machine, try to deploy your application and see how it behaves in that environment.