I seem to have trouble with <httpModules> in Applications that are in subdirectories of my site. When I configured BlogEngine as an Application in a subdirectory, it complained about any <httpModules> that I use in the root Application folder (from by Bin directory) that were not in the Bin directory of BlogEngine. I know I can <clear /> the <httpModules> and then add them back, but there are some that get added in the server wide machine.config that I might want to work in the BlogEngine application.
To avoid this issue, I configured BlogEngine to run in a subdirectory of my basic CMS application:
1. I added a new setting to the BlogSettings of "ServingLocation" which I made default to "~/BlogEngine/".
2. Where I could, instead of using hardcoded paths like "~/posts" I replaced it with something like BlogSettings.ServingLocation + "posts".
3. Where I could not use the BlogSettings (because the reference has to be hardcoded), I updated "~/" with "~/BlogEngine/".
4. Updated the compression module to only compress files in the BlogSettings.ServingLocation directory (the compression was breaking some of my ASP.NET AJAX pages).
5. Moved all the web site files into a BlogEngine subdirectory. I did not move the "App_*" or "Bin" directories.
I think that's about all the changes I made, and BlogEngine does not have to run as a separate application, but instead can live in my site as a subdirectory.