Hi,
I do this using XML files, that I read with XML::Simple and a Perl Module that handles some XML tags, like
<include file="someother.xml"/>
Then I split my configs by several files, with options specific to some thing, and used by all needed parts.
Then I make config files to the tools that just include the splits each tool need.
I try to change the splits as little as possible, and usually just to add new options. When I need to restructure the options tree to one of the tools, I just restructure the main xml file for that particular tool, repositioning the includes (which are just the leafs in each branch).
This is for sysadm/offline tools. When talking about websites, I use a table in the site database where all options are saved, and where I can edit them.