I myself have had my first play just recently with GRBL on Arduino, but have not actually controlled a machine with it. I just wanted to get a feel for it. I used the Universal G-code Sender software, which looks to be quite similar to the one you have linked, but I have no experience with your flavor. However, I also have operated a small 3-axis cnc router for a little more than a year or two, and can relay my experience.
As far as "zeroing the motors", I am a little confused by what you mean, so I will just explain what I do:
First, I draw the model in CAD in such a manner as to reference the model to the actual x,y,z zero point (origin) in the drawing. I typically create the model so that the origin falls dead center of the model in the x and y axis, and the top of the model lies at the z zero point.
So when it comes time to run the g-code program on the machine, I first simply jog each axis(I am assuming that this would be done under the "axis control" tab of the GRBL Controller software) to any appropriate location on the machine for the origin reference point, with strict consideration paid to the actual dimensions of the model to ensure the travel available on each axis of the machine will be sufficient.
I then re-zero the control software to that location (probably the "Zero position" button from the screenshot on your link), so that the machine control/machine now sees this location as the origin, and I run the program.
Now, I do realize that others use terms like "homing" the machine and I am not quite sure everyone's definition of this is the same. And as Robin2 said, you can use limit switches to tell the controller when each axis reaches its limits of travel, or some known reference point, but I have not used this process. My machine does not have the limit switches connected, and it is usually not a problem, although I have had the machine dig right down into the table until it snapped the cutter by accident several times.
"Before I set them up I want to know how I can zero all the motors, so that they move correctly within the dimensions of my machine. I assume i have to input the correct lengths of the XY, and Z accesses, but how do I do that?"
Again.....I am not quite sure exactly what you mean, but as long as the CAD models dimensions are smaller than the maximum travel of the respective axi of your machine, you should be good to go....There are lots of variables that change depending on the actual parameters of your machine, but in general, you can change the "tuning" of the machine via GRBL without having to re-flash the Atmega. You can find more on this information here:
http://www.shapeoko.com/wiki/index.php/Grbl and
Configuring Grbl v0.8 · grbl/grbl Wiki · GitHub
... but I assume you are familiar with this if you are to the point of running steppers with GRBL. Basically, you can use the serial monitor in Arduino IDE to change parameters like steps per mm or maximum velocity,etc., by entering the appropriate number and $, and then changing the value. ...for example enter "$0=200" if your machine x-axis uses a 200 step per revolution step motor, full stepping, and the stepper directly drives a leadscrew that turns 1mm per revolution. So if you are microstepping at say...1/4 steps, then you would enter "$0=800", (4 x 200) provided everything else remains the same.
hope this helps,
Cheers,
Bill