I've been spending a lot of time lately thinking about use cases for source file location abstractions. Some tools like Visual Studio Deployment Projects provide no abstraction and other tools such as InstallShield provide abstractions (Path Variables) based on environment variables, registry values and/or command line arguments.
Then there is Wix can use different types of compiler inferences and preprocessor variables and/or extensions.
Obviously this can get very complicated so I'm curious, what is your favorite way to roll and why? What do you need and what could you live without?