It would sometimes be nice for the user to be able to customise the setup process without having to edit setup.py. The obvious case is to allow the user to override library directories, where setup.py can assume the "normal" case, but still allow for non-standard locations.
One relatively simple approach would be to write setup.py to read a configuration file, and get such options from there. But an alternative option would be to allow setup.py to have access to (part of) the command line typed by the user.
My suggestion would be to allow the "global_opts" or "cmdX_opts" to contain arguments of the form key=value. These can be exposed to setup.py as a dictionary, say distutils.args.
What do people think?