Castle DynamicProxy2 dll needs to be updated to work with medium trust.
Check this link
EDIT
With the solution above, you DON'T need to disable ANYTHING in NHibernate, including Lazy Loading. DynamicProxy2 just won't generate .pdb files on the fly, making everything run smoothly on medium trust.