Ok, I found a really better way.
SciTE handles this right.
The idea is that the configuration will be separated in 3 different files: global.conf, local.conf, and user.conf.
Where:
global.conf will contain all the settings that C::B uses, by factory default. The user can change them though, but when the user updates to the next C::B version, all the entire file will be replaced, so it's adviced to not change anything over that file.
user.conf will contain only the settings that the user override (change) in respect to the global.conf. Nothing less nothing more. The point is that it should not be a copy of global.conf, but instead only store the settings that differ.
local.conf is the same concept as user.conf, but it will be applied to the entire system (root privileges probably), not only the current user.
So user.conf overrides local.conf, and local.conf overrides global.conf.