I never fit limit switches to my machines or homing. Homing wastes far too much time. just set work co-ordinates and machine co-ordinates to the same point and then zero on the corner of the work or vise and you always know where you are.
I have to respectfully disagree with omitting limit switches. While my project is still ongoing, I've already made a few things under computer control and the limits have come in very handy. Initially when you're setting up drivers and other parameters, hitting the limit switches is pretty common. Even under moderate speeds it's nice to have the machine hit a switch and error out rather than hitting mechanical end of travel <cringe>. Perhaps if you're using under-powered motors it's ok because they'll just stall out, but when you ramp up the power or mechanical advantage you risk damage without working limit switches.
After finalizing your control/drive settings, the limit switches are very handy when you're jogging around and inadvertently go too far. With my current configuration (LimuxCNC), I can repeatedly bump into the soft limit (just shy of the actual switch and safely away from travel limit) and it just stops jogging that direction and lets me reverse. In order for this to work properly, you _do_ need to home the machine at least once at the start of your session using fixed switches. Better yet, the switches plus the index pulse from an encoder.
Oh, and I don't know about anyone else but I'm never in so much of a hurry that I can't watch a machine home itself a few times in a session. I like to know that the limits and motors are functioning correctly and this is a "quick" and easy way to do it.... assuming you have a system that can move faster than a snail. With my previous iteration (under-powered steppers and cheap driver with Mach3) I'd have to go get a snack while waiting for it to travel the length of the machine. Now with decent servos, it's only a few seconds.
-----
But I digress. Habitually.
Back to Will's questions, one that wasn't addressed was the setting of distance traveled relative to steps. The first thing to do is the math that involves the angle of rotation per step (commonly 1.8 degrees, or 200 steps per rotation), fractional driver steps (full, 1/2, 1/4, 1/8th, etc), the gear ratio between motor and axis (if not driven directly), and the pitch of the leadscrew. You can work it out logically or do a search for some calculations you just plug the numbers into. This should get you _very_ close.
After that you'll want to tweak it as close as you want, within the mechanical limitations of the system. You can do this with a 1" travel indicator, which is ok for hobby use but does have some "significant" error in full travel. Or using a DTI and gauge blocks - a more accurate method, or if all you have is a set of digital calipers and you can figure out a clamping arrangement this can be pretty good too.
The idea is to determine the difference between what the machine "thinks" it's moving, and what it's actually moving. Then you adjust one of your parameters by the percent error. If it gets worse you're doing likely it backwards. Keep doing iterations until you get as close as your hardware lets you. Do it for each controlled axis. For some really long axes it may be worthwhile to set up a "leadscrew map" to account for differences in pitch along the length, but for most machines this probably won't gain you much.