In this post Jeremy Likeness explains what happens if the user is running on their desktop and offline and demonstrates his OfflineCatalog which comes to help in such situations.
This MEF catalog behaves like the DeploymentCatalog with a few exceptions. First, it will save any XAP file to isolated storage whenever it retrieves one, and second, if the application is OOB and offline, it will automatically load the XAPs from isolated storage instead of trying to fetch them from the web.
Instead of building my own catalog from scratch, I decided to cheat a little bit and use some of the existing catalogs "under the covers."