Old printers are always a good source for parts. You can remove stepper motors, DC motors, pulleys, high-quality rails, and even individual electronic components from most of them. Sometimes the X/Y carriage can be quite useful, too.
In this example, an old Epson printer was given new life as an SVG plotter with the help of an Arduino and a creative individual. The basic frame that held the stepper motors for moving the paper and the print head was retained. The next mechanical issue that would need to be tackled would be raising and lowering the pen. An old CD-ROM drive provides the perfect parts for this, as you can see in the video.
You simply input your file into a vector graphics program (like Inkscape) and send it out to processing. Processing interprets it and sends it to the Arduino, which controls the motors with the help of the motor drivers from the old printer. It may be a little bit loud, but the results turned out quite well.
Schematics for the system and the processing files and Arduino sketch available on the project site, Junk + Arduino. It seems that, with a slight modification for more downward force on the print head, this could easily be adjusted to become a cutter for stencils and vinyl decals.