I'd previously given some thought to this issue, and implemented a rough stab at dealing with it. Regular interface by which users configure custom settings for modules, and modules implement those customizations at initialization time. The customization process does not depend on prior loading of the target module in order to register customizations. The module, conversely, controls adoption of the customizations. It is responsible for actually assigning the variable, and should return the value assigned.
Custom vars with no designated assignment function actually use the 'assign' routine, below.
It simply assigns the value to the var within the module.