What is the correct way to load modules for iptables on Centos 6

None of them.

/etc/rc.d/rc.sysinit looking for two locations to load modules:

# Load other user-defined modules
for file in /etc/sysconfig/modules/*.modules ; do
  [ -x $file ] && $file
done

# Load modules (for backward compatibility with VARs)
if [ -f /etc/rc.modules ]; then
        /etc/rc.modules
fi

So, you should put the loading command into /etc/sysconfig/modules/*.modules or /etc/rc.modules:

# echo "modprobe ip_conntrack" >> /etc/sysconfig/modules/iptables.modules
# chmod +x /etc/sysconfig/modules/iptables.modules

For iptables on CentOS there is an additional location which is where I have those particular modules configured to load and that's the /etc/sysconfig/iptables-config file. The start of the file looks like this

# Load additional iptables modules (nat helpers)
#   Default: -none-
# Space separated list of nat helpers (e.g. 'ip_nat_ftp ip_nat_irc'), which
# are loaded after the firewall rules are applied. Options for the helpers are
# stored in /etc/modprobe.conf.
IPTABLES_MODULES="nf_conntrack_ftp nf_conntrack"

When I run service iptables restart I get this line

Loading additional iptables modules: nf_conntrack_ftp nf_co[  OK  ]

If I play with the contents of the

IPTABLES_MODULES="nf_conntrack_ftp nf_conntrack"

above it changes the output of the Loading additional modules line when I restart the service.