The problem with using a simple resistor is the amount of voltage it has to drop. As you pointed out the resistor needs to be large and will run very hot (~12W dissipation).
The bigger problem though is that the way the zero crossing is detected is to expect the optocoupler output to go high when the LED is not lit up but go low again as soon as the voltage rises above zero. Unfortunately, that wont happen, the reason being the LED needs a few mA before it will emit enough light for the sensor to see it.
For example, suppose the peak current through the LED is 10mA when 1.2KV is present and the LED needs say 5mA to operate the internal phototransistor: The series resistor should be, R=(V-Vf)/I which gives a value of 119.84K and a power dissipation of: W=V*I = 11.98W. I'm assuming the voltage is RMS as it is obviously AC.
For the LED to pass 5mA, the voltage has to be 599.2V. So the optocoupler thinks you are at zero crossing until the voltage has reached around 600V. (not very accurate!!)
Your options are to drop the voltage using a transformer to something much lower, maybe 6V or less then using a smaller value resistor. This poses two problems, one is that you hint the voltage may be variable which makes transformer choice difficult, the other is that the transformer will introduce some phase shift. The phase shift will be constant so it is easy to 'subtract' it afterwards.
The other option is to use a lower value resistor but prevent the LED current becoming too high by feeding it through a contant current generator. It will still go out when there is no voltage but you can make it light up at much lower voltage without damaging it as the voltage increases. The drawback to that aproach is the CC generator also dissipates quite a lot of the heat.
You could consider a capacitive voltage dropper, that removes the heat problem but unless you use it in conjunction with a CC generator it still gives a wide 'Zero' zone. If you want to try that method, pick a capacitor value that has Xc a little lower than 120K and add a fixed series resistor to make up the difference. For example if you are using 50Hz AC, you could replace 119.8K with a 27nF capacitor and a 2.2K resistor in series (effectively 120K) and the heat dissipated drops from ~12W to 0.22W. Make sure you use a suitable rated capacitor and a fuse in case it fails short circuit!
The most practical solution that gives high accuracy it probably to use a differential amplifier powered from the low voltage (logic circuit) side of the circuit and monitor the AC line through very high value resistors. The circuitry is more complicated but you get most precise zero crossing detection and you can monitor the polarity as well.
Brian.