[eluser]WanWizard[/eluser]
hippies?
I can't speak for others, but I have several reasons for wanting to work modular.
First of all, it breaks your application into pieces that can be handled easy. The same reason we all moved from one chunk of spaghetti code to procedural code to object oriented code.
It also makes reuse easier (if you develop your modules well), and in a lot of applications it allows functional extensions to the application without touching the application itself.
For most modular solutions, modules are loosly coupled to the application, you install a folder structure in the modules directory, and the module is directly loaded via the URI.
For Modular CI, the main goal was full functional integration in the application, with a defined API. Which in the case of ExiteCMS allows you to develop modules at screen element (block, widget, name it) level, which completly integrate in the application. This allows third parties to develop modules for the application without having to modify the application itself, in some cases even without touching the application at all. It also allows extension of functionality by interaction between modules. If you install the workflow module in ExiteCMS, you can add workflow capabilities to lots of functions within the application, for example when a new user is created (things like approvals become possible).