As far as I'm concerned, you start deleting retail data, you lose retail missions. I don't see why it has to be any more complicated than that. If you want to play retail missions, then fire it up without the mods. If you want to play the mods, then play the mod's missions.
Yep, I mostly agree, but the devil is in the details. In Galemps user case (multi co-op FSPort "campaign") the issue is it's hard to tell which missions belong to which mod. That's the issue that Yarn's blacklist idea will address, FSPort could easily make a single table entry to ensure that missions in retail & standard mediavps directories would not be shown. I agree that a blacklist or whitelist per mission would suck to keep up to date, but at a directory level (where the directory represents the mod) there should not be any reason to update that table entry once it's created. That should only be needed if the required dependencies change their names, and by adding appropriate wildcards that should be able to be dealt with as well.
If we look at the other use cases, we have single player campaigns and standalone missions, either part of the mod, or user-created. Single player campaigns are already catered for (#Ignored Campaign File Names AND $Campaign File Name:). Standalone missions are rare, but could also be excluded appropriately by the above suggestion.
The only other solution I can think of here is to find a way to gracefully not allow a mission if its required assets aren't available. Having any kind of list is going to be a nightmare for maintainability reasons, and I personally would recommend against it.
I thought that adding graceful failures to the mission parsing would be harder than adding the directory blacklist. However, based on what mjn.mixael just posted, maybe it wouldn't be. I got the impression that selecting the wrong mission in multi caused a crash, and you're talking about modifying our glorious netcode.. maybe all servers & clients could pop the warning about bad assets, and then do what the "master" does (hopefully backout!), but I still feel like this is harder option.