Hi Chris,
I just had a similar problem to what you had and I thought I would post more information on the subject.
I think this is likely related to the differences that the identity user AppPoolIdentity has over NetworkServices in IIS7.x and in IIS7.5 AppPoolIdentity is setup by default.
I just had a similar problem when copying a DLL and the AppPoolIdentity/trust level of the dll were to blame it seems read the blog from the French IIS support team.
http://blogs.msdn.com/b/friis/archive/2010/06/09/system-security-securityexception-request-for-the-permission-of-type-system-web-aspnethostingpermission-failed.aspx
Of which I expect this bit will be the most useful:
"In IIS 7.5, the default application pool is no longer
Network Service, like in IIS 6 (that came with Windows 2003) and IIS 7 (that comes with Windows 2008), but rather a built in account called
ApplicationPoolIdentity. This is even more restrictive than Network Service, in that required trust levels for .Net assemblies to be loaded inside an application pool have to be greater than what was permitted with Network Service."
Anyway I saw you had a similar problem googling around for more info and it linked to here so hopefully it will help.
Cheers,
Rovastar
www.IISportal.com