[eluser]TheJim[/eluser]
In my case, what I actually do is use a CI pre-system hook to set up my own custom autoloader. If something extends my equivalent of your DataMapperExt, then when the autoloader is called for DataMapperExt, I load the database and DMZ if they're not loaded yet. That way I can call new Model() wherever I want it and have everything just work without necessarily including the database and DMZ on every page (they're relatively heavy libraries).