In this case, you could set the modules as LoadOnDemand in their ToC as noted before. You can have the core scan for and load them when needed using code like this.
Lua Code:
for i=1,GetNumAddOns() do
if not IsAddOnLoaded(i) and GetAddOnInfo(i):find("^GS%-") then
LoadAddOn(i);
end
end
This scans through all addons and loads the ones starting with
GS-.