Ok I think I find an answer to all the stuff.
The check on HttpContext.Current.Items("UserCheck") was not working because each request to jpg, css, js would fire it's own HttpContext so there's no use for a global flag that way.
After a bit of searching I found a much more clean and conventional solution.
If you don't want your modules to be fired on stati content requests (wich includes static resources in your page) you have to set in the web config in the section:
<modules runAllManagedModulesForAllRequests="false">
Also you have to add to your modules the attribute: precondition="managedHandler". Example:
<add name="ReadUserSettings" type="namespace.to.type" preCondition="managedHandler" />
For some reason I didn't have those settings in my web.config.
Now I'm stuck with another little issue but now that I have a better idea of what's going on, I think I should open a more specific topic on the subject, that is how to exclude .axd handlers (or just WebResources.axd handler would do) from firing my custom modules, since .axd handler is threated has managed code since it has preCondition="integratedMode,runtimeVersionv4.0" and this is how it should be. I just don't want my modules to be fired from it or other .axd.