Lazy loading code packages at runtime (load functional code modules/assemblies on demand) in a medium to large Silverlight RIA can reduce the initial downloading size. This ensures snappier up and running performance and cleaner code structures. The Silverlight Module approach (A Silverlight Module is a collection of features that are bound together within a binary package file, it is different from a .Net Module which is a compilation unit. ) presented in this article enables developers to work in parallel on different feature groups, also promotes the creation physical and logical modularized application, which can be separately loaded and subsequently rendered at runtime on demand.
There are several articles that discuss the mechanisms for on demand package delivery including Silverlight how to: On-demand assembly deployment, Downloading Content on Demand and Managing Dynamic Content Delivery in Silverlight (by Dino Esposito) . The modular Silverlight application approach presented here leverages the same low level mechanisms, it also has built-in mechanism for error handling, status messaging, auto-rendering and other practical integration capabilities, so the developers can focus more on module logic, rather than the plumbing.
You can take a loot at the sample modular Silverlight application, all source code are included.