As Andrew pointed out, the main user customization SKILL syntax file that is automatically loaded is the .cdsinit file which typically can reside in your current, home or <cds_install_dir>/tools/dfII/local directory - the latter location does not exist by default, but if the .cdsinit file is found there then the search mechanism stops (although the .cdsinit file itself can load other SKILL syntax files, including $HOME/.cdsinit or from the current directory). There is a Cadence Search File mechanism (CSF) which is worth reading about in the documentation, the search mentioned above is a default, but the CSF can be customized to search in a different order or in different locations. In addition to this, if a file named libInit.il exists in a library, when the library is first accessed this file will be automatically loaded. Typically this is used as part of a PDK, e.g. the library initialization may load PCell SKILL code etc.
For doing something specific to a schematic window, the easiest way to do this is to define a SKILL trigger such that when a schematic view is opened, the code specified by the trigger is loaded. For example:
deRegUserTriggers("schematic" nil nil 'CADCustomizationFunction)
If you just want to modify the menus in the schematic, then another way to do this is to use the menus files mechanism. Here are a few solutions related to the menus file approach:
Hope this helps you!