As you said, having 2 shells is not the usual scenario for most applications, but prism does support applications with multiple shells.
Composite Application Guidance for WPF documentation:
Shell and View (Technical Concept)
"You do not have to have a distinct shell as part
of your application architecture to use the Composite Application Library. If you are starting a new composite WPF application from the very beginning, implementing a shell provides a well-defined root and initialization pattern for setting up the main user
interface of your application. However, if you are adding Composite Application Library features to an existing application, you do not have to change the basic architecture of your application to add a shell. Instead, you can alter your existing window definitions
to add regions or pull in views as needed. "
Erwin Van Der Valk,
developer in the Prism-v2 project, has created an
Outlook style sample application that seem to be very similar to your application:
how to build an outlook style application – part 1
how to build an outlook style application
with prism v2 – Part 2
Though I don't know your exact scenario, you might find useful the
RegionPopupBehaviors used in the Stock Trader RI
sample. The following thread deal with similar situations:
Regarding the communication between modules, you might use the
service to communicate decoupled publishers and subscribers. Ward Bell wrote a great post about the prism event aggregator:
Event Aggregator in Prism Explorer.
You might also find useful the following articles in the documentation:
Event Aggregation QuickStart
How to: Create and Publish Events
If you want to register any other service you might check
How to: Register and Use Services
Hope it helps!