How Do Modules Interact?

I am having some trouble wrapping my head around how it is possible to write a modular application with all modules being independent from each other?

For example if I have 2 modules blog and user. and I want to restrict the blog posting functions to admins. Doing a simple check on the blogs “actionPost” function like “Yii::app()->getModule(‘moduleId’)->isUserAdmin();” will mean that the blog module is no longer independent, right? Or am I looking at this the wrong way?