Suggestion: When loading a package file Packages\FolderName\FileName.ext, check if Packages\User\FolderName\FileName.ext exists. If so, load that file instead.
Example: When loading the Haskell syntax definition file, try to load Packages\User\Haskell\Haskell.tmLanguage before Packages\Haskell\Haskell.tomLanguage.
This way you can put all your changed settings in the User folder, making it easy to backup or copy to other computers. It also eliminates the chance of your settings being overwritten by a new version of Sublime.
Note: Of course this should work for multiple levels of subfolders as well, so Packages\User\Default\Options\User File Type.sublime-options supercedes the current one.