The conditional forwarder should work too, that is what we do. I wonder if there is some sort of port/firewall issue that is not allowing it to work. You could use a tool like portqry or wireshark/netmon to sniff out traffic and check that way.
With the zone transfer the info is local so it will always work but the forwarder is a valid method.
Thanks
Mike