ARD Ports -- direction matters.
Here is my understanding, please correct if wrong.
If port 5900 outbound is open on the Client, they can be controlled, but you can't do advanced features such as software updates. This appears to work even if the Client machine and Server machines are on different networks and port 5900 inbound is blocked by a NAT box.
If port 3282 outbound is open on the Client, then you can also do software updates and other advanced features, but only if port 3282 inbound is not blocked by your NAT box or firewall.
This setup will let you control the client, but not do software updates:
Client 5900 <---- NAT/Router <---- ARD Admin 5900
Client 5900 ----> NAT/Router BLOCKED
Client 3283 <---- NAT/Router <---- ARD Admin 3283
Client 3283 ----> NAT/Router BLOCKED
This setup will let you control the client, and do software updates
Client 5900 <---- NAT/Router <---- ARD Admin 5900
Client 5900 ----> NAT/Router BLOCKED
Client 3283 <---- NAT/Router <---- ARD Admin 3283
Client 3283 ----> NAT/Router ----> ARD Admin 3283
Understanding this may help with some of the confusion, as it's easy to have your network in a state where you can control the client, but not do software updates, because the return 3283 port is blocked.
Mac OS X (10.4.6)