We have a configuration management system that stores configuration in either a system wide or current user location. It merges these 2 locations to create the configuration. There are 2 kinds of configuration elements. Files and Settings. Settings currently are stored in the registry and Files are stored in a system wide location or in the user's profile.
The current system has 2 pieces. A C# piece that is used by the configuration application to configure things. A C++ piece that is used by the application to read that configuration and use it.
In general we want to do 3 things.
1. We want to move the user settings and files out of the user's profile.
2. We want to move the configuration settings out of the registry and into xml files we maintain.