I use CadCode, which uses layer names for operations. Layer's named Vbore, will do vertical drilling. You draw the circle the size you want, and cadcode assigns the tool to that hole, as long as it's drawn on the Vbore layer. I would think that RouterCIM has a similar function. It seems quite prone to error, like you said.