I forgot to address the tendency of holes to come out undersized on printed parts. This is due to a few factors. When you take a thread of plastic and bend it around a corner, the outside edge will need to stretch, and the inside edge will compress, leaving a little more plastic than intended within the hole. Also there are often tiny pauses in between line segments, during which time plastic is still coming out of the nozzle. It is a very tiny amount of plastic, but a circle is made of many short segments.
One way to get holes to print at the right size is to use low face-count polygons rather than circles. The tangent of the hole will be determined by the straight sides of the polygon, which print correctly. The corners of the polygon should lie far enough away from the circle that any blobbing that occurs there won’t cross into it.
There is a tab in Skeinforge called Stretch which is designed to compensate for this problem by detecting interior circles and moving corners away from the center so that extra plastic doesn’t reduce the diameter. It’s off by default, and I haven’t experimented with the settings yet, but I plan to do so.
There is an excellent blog post about this by Nophead, who is one of the most knowledgeable members of the Reprap community. His blog is well worth following.