I have one site where DHCP is not allowed on the datacenter subnets, and everything must be set statically. I can't PXE boot or use dynamic IPs at this site.
I set aside one static IP address and a DNS hostname that is used only during the scripted deployment of ESXi hosts. In my boot.cfg (a customized one in my ISO file), I set the correct vmnic, vlan, and the static address as kernel options. I also have the actual ks.cfg file hosted on a web server and pass that path in the boot.cfg kernel options.
kernelopt=ip=10.x.x.x netmask=255.255.255.0 gateway=10.x.x.x vlanid=y ks=http://10.x.x.x/ks/ks.cfg ksdevice=vmnic2
Then, in the install section of the kickstart script, I set the same IP address, vmnic, the temporary DNS hostname, vlan, and so on.
network --bootproto=static --hostname=esxtemp.domain.com --ip=10.x.x.x --gateway=10.x.x.x --netmask=255.255.255.0 --vlanid=y --addvmportgroup=0 --device=vmnic2 --nameserver="x.x.x.x,y.y.y.y"
When the host completes installation and completes the firstboot customizations, I change the IP address and hostname to the correct values for that host. It's not fully automated, but it's automated to the point of actually setting the IP and hostname at the very end. It works for me since it's a smallish environment.
Other than having to set the correct IP and hostname at the end, the downside is that you can only deploy one host at a time this way.