that's one model, but what about when you're deploying an app on multiple machines each requiring their own specific configurations, of which you as the programmer have no control/visibility.

that's when you'll need a configuration file external to the deployment.

under windows XP, the user's 'Application Data' folder is the best candidate, on windows vista the users's 'AppData/Roaming' is the best candidate. under unix/linux os' i'd create a folder under whatever user.dir is.