Eagle will start off by executing the "eagle.scr" script from the library path you have configured in the "directories" option. You can have this do customization, usually by calling additional scripts. For instance, mine looks like
# Configuration Script
# This file can be used to configure the editor windows.
Change Width 0.024;
Some stuff is remembered elsewhere. There is (on unix-like systems) a $HOME/.eaglerc, for example (not designed to be user-editable, exactly. Contains lots and lots of undocumented option settings.)
I THOUGHT that color definitions were remembered in there and were "sticky" without the user having to do anything special. If you're losing your special color settings, you might have some mis-configuration that prevents them from being saved. (OTOH, I always end up seeing the arduino team's color choices when I look at one of their reference designs, so this may be saved in the individual design files as well.)