WordPress implements a feature called Child Themes to allow changes to be kept separate from the core files. When an upgrade is made, the core files are upgraded and the child theme remains intact and working.
This allows upgrades to be made more easily and is the mark of a mature system. Where possible WHMCS should be adding hooks to remove the need to modify core code, of course, and I know that's being done; but child themes takes this one step further.
Child Themes quick overview from WP Codex: http://codex.wordpress.org/Child_Themes