HTTP modules are great. I finally implemented the blogger api as one, using the excellent Cook Computing XML:RPC library from Cook Computing. The problem comes when you create applications under your root application. This is a common enough scenario and necessary sometimes (for example nGallery needs to be in its own application because it uses its own authentication modules). The problem arises when you add HTTP modules and handlers to your root application. Suddenly you discover that your new application needs them too.
But wait, there appears to be a solution, the <remove> functionality, or even <clear> You would think that would do. Unfortunately not. In order to clear the HTTP modules inherited from the web root the sub-application needs to load them first. Whose bright idea was that? So until that gets fixed you're going to have to copy the DLLs that contain your modules into the bin directory of your sub-application. Confused? Me too.