The main problems used to be that the .ui file definitions were stored
in a system directory and that an evolution update overwrote any changes
there.
Since now on, the .ui files are versioned and they can be copied into
~/.config/evolution/ui/ and modified there. The evolution will use those
files as long as their version will match the version of the file
in the system directory (it's the "evolution-ui-version" attribute
of the root "ui" element). In case the versions do not match,
the system file will be used instead and a warning about version
mismatch will be printed on the console, thus the users can notice
the change and either update their file or remove it, as needed.