Hi. Mach2 certainly works for this. I do it a bit differently. I have a 'sensor' which is a piece of copper attached to a wire on a parallel port input. I place the sensor on top of the workpiece and run a macro. The macro lowers Z until it makes contact with the sensor, subtracts the sensor's thickness and backs out to a set height, 1" in my case.
The advantage I see with this method is that different material heights are accounted for and cutting always starts at Z=0. Here's a link to my machine log and an early video on how it works:
http://www.cnczone.com/forums/showthread.php?t=5302 (3rd post down)
Thanks,
JR