Shrinkage is proportional to the size of the object - 0.5-1% shrinkage on x/y linear dimensions is reasonable for ABS. Bottom layers tend to shrink less because of the heated bed. Z tends to be more accurate, because of the layers all being started at the right height, and the underlying print being already relatively cool. As Carl says, it depends on the specific material and moisture content, so best to measure.
Note that fixed errors (like extrusion width, artifacts like corner bulges, and mechanical hysteresis in the axes) usually overpower shrinkage, particularly for small objects.
You can correct for this in your model by trial and error, but don't expect the correction for one part of an object to be necessarily applicable elsewhere (so don't touch your steps-per-mm!!).
Internal holes are easy to fix by drilling them to size afterwards - it's handy that they always come out smaller than nominal thanks to the way the extrusion behaves.
In the end, designing allowances for dimensional error of at least +/-0.2mm for home-FFF printed parts is a good idea. E.g. oversize sockets by 0.5mm. If this ends up too loose, or you need to guarantee a good fit, then you'll usually need to post-process (i.e. file and sand!).
Carl - I'm curious to know what that CTC of yours prints a 60mm square at, compared to the 20mm square. Otherwise, it sounds like impressive results. Congrats!
SD3. Mk2b + glass, heated enclosure, GT2 belts, direct drive y shaft, linear bearings, bowden-feed E3D v5 w/ 0.9° stepper
Smoothieboard via Octoprint on RPi