HttpModule and HttpRequest
When a request enter the pipeline, it's handled by an instance of the HttpApplication class. One of the first things HttpApplication does is create an instance of HttpContext and populate it. This context object is available throughout the reqeust processing pipeline, and exposes many familiar types.
HttpModules are designed so that several can be plugged into a single IIS application. The extensions that Microsoft addes to the pipeline that you examined previously are implemented as HttpModules. So by default, any IIS application has about a dozen modules plugged in and extending the pipeline.