We have an IIS 7.5 (not using ASP) with the following sites:
Site A
Site B
Site C
Site D
The web.config should be capable of doing this actually. Put the common web.config file into a folder that each site has read permission for. Then modify the individual web.config files to call the common file:
<appSettings file="/path/to/some/common/web.config">
Then this common file can be used for any files that need it and ignored for those that don't. You can even rename it to common.config or something so that it doesn't get inherited. So this would work:
<appSettings file="/www/common.config">
All children directories should have read access to it, and since it's not a web.config it shouldn't mess with any application settings that are derived.
Note: When including a config file in this manner, changes to the included file do NOT trigger an application recycle in the same manner that a direct change to the web.config would. This should not truly be a problem since you simply have to restart the application pool, but it can be confusing at first.