One of the root components of a CAB Application is the module. So what is a module, exactly?
A Module is basically a collection of WorkItems. Since WorkItems are generally 1:1 with use cases, then modules are a package for related use cases.

Modules get loaded by the application Shell, via the ProfileCatalog.xml file. When you are structuring your solution, you do not include a project reference to the module project in your shell project.
One benefit of doing this is that you can create new modules and load them into a shell without recompiling the main shell solutions. You could easily package up a patch which included a new ProfileCatalog.xml and a dll as a zip file.
Modules also help you organize your WorkItems into logical units so that they become more managable.