Ok, a quick post to help resolve the classic iphone exchange syncing issues that heaps of people may be experiencing. So im going to post the solution that worked for us.
Problem was we could get make the iphone sync on the internal lan, but the second you leave the office and try to connect externally, no joy. Here is what worked for us.
1. Install SP2 on the exchange server, you may experience message filtering errors if you have left this to late, so you need to google removing IMFv1 before doing sp2 update
2. open the correct ports on the firewall, http and https <- this is all you need, outlook web access and iphone sync works on https port (443)
3. Make sure the microsoft-server-activesync directory server ip allow list is set to all computer, not restricted to local computers (this was the biggest problem we were having). You change this under the IIS manager on the sbs server, under website, default site, microsoft-server-activesync, directory security, authetication and access controll, change to allow all computers!!!
good luck and hopefully this will fix your problems.