Policy Based Routing

I am wanting to route all port 80 requests to an external transparent caching box. Would I first mark all the desired out going port 80 requests with a connection mark then follow up and mark all packets with that connection mark with a routing mark?

Use DST-NAT.

That will not work. Want the websites to see the users IP and not IP of web cache.

http://wiki.mikrotik.com/wiki/How_to_make_transparent_web_proxy