I think that what Luiz Damim proposed is overkill and wrong. The plugin will be called for each call unnecessary. Why doing stuff for disabled modules?
I would do a detection based on a config file where only active modules are instantiated.
UPDATE
Usually modules are instantiated en masse:
$front->addModuleDirectory('/path/to/application/modules');
But you can activate modules one by one, or by passing an array with ONLY the ones that you want active.
$front->setControllerDirectory(array(
'default' => '/path/to/application/controllers',
'blog' => '/path/to/application/blog/controllers'
));
If you are using Zend_application, I think you have to change this line in your config:
resources.modules[] =
with
resources.modules = admin
resources.modules = news
The first one loads whatever modules can find in the modules folder which is by default behaviour. I haven't worked yet with Zend Application so I am not sure about this, but there must be something like this.