Robot Operating System (ROS) is set up to do exactly this (www.ros.org
). You'll need to run Ubuntu, but you can install it and Windows alongside each other without wiping them out, so you're set.
The way ROS works is you have a single "Core" (called...roscore...) program that is always running, then your program is composed of "nodes", which communicate with each other through Core. Think of it exactly like a program running on an operating system (hence...Robot Operating System :-P)
When you're working over the Internet, you run Core on one machine, and then a set of nodes on the other. Those nodes are running on the remote Core, and data is transferred through the internet.
ros.org has lots of tutorials about how to do this, and it's kind of cool. We've successfully sent microsoft Kinect data over the internet. Keep one thing in mind: the more nodes you run on the remote machine, the more data you transfer, so be very careful to keep the remote machine running only a minimal amount of nodes so that you don't clog your bandwidth.
Otherwise, the idea of running an Arduino to control the robot is fine. The arduino is communicated with via a serial port on the laptop, and really nothing that the local machine (the laptop) is doing, other than collecting the vision data, is relevant to the rest of the system, so you don't need to send that to Core :-)
Head to ros.org to learn more. It's...really awesome haha.