I'd like to see a system where the relationship a module has to its environment is defined when it's loaded into that environment, by whomever is doing the loading - ultimately, the user.
Exactly. This is also the assertion made by Findler and Flatt (http://www.iam.unibe.ch/~scg/cgi-bin/oobib.cgi?query=Find98a) in they paper "Modular object-oriented programming with units and mixins". In they model of Units (kind of module), the import is stated __externally__ to the definition of the unit itself. A Unit just say "I need a class named Socket", rather than saying "I use the class Socket provided by the unit Network".
Concretely, in squeak, this can be done using a king of configuration that gather all the relationship between various packages.
Cheers, Alexandre