Hang on, I think you are at crossed purposes here and I appear to have not read the original post properly to begin with so my apologies...
The EXTERNAL COMMAND FILE is a file in which commands entered through the web interface to, say, ack a service or whatever, are reported into , and thats where nagios expects to find them - normally you will leave this as is... All of your object configurations, be they host objects, service objects, command objects and so on are indeed configured by referencing the files that contain them with cfg_file= as you have correctly tried to achieve. Ensure that all of your relevant object config files have a related cfg_file statement, and any cfg_file statement you are not using is commented out.
Unfortunately for you, the syntax for your cluster_commands.cfg file (dated 2002) is not now supported...
All objects, such as
command[notify-by-email]=/bin/printf "$OUTPUT$" | /bin/mail -s '$SERVICESTATE$ alert for $HOSTALIAS$/$SERVICEDESC$' $CONTACTEMAIL$
are now defined like
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState:...etc
There is a note at the top of the file regarding converting the file to 'object format' - that might help.
[blockquote]# Note: Use the convertcfg program in the contrib directory of the Nagios
distribution to convert this file into a object file format.[/blockquote]