You might want to use a front controller plugin to handle this. The plugin could inspect the route prior to dispatching (using the routeShutdown() hook) and if the detected module is disabled it could forward the request to the error controller.
-- *Hector Virgen* Sr. Web Developer http://www.virgentech.com
