While the options for installing DCC decoders in N scale engines without the need to do major modifications to the frame are much better than in the past, there are still some cases where space will need to be created in the frame for a decoder, wires, resistors, etc. For me the best option has always been to send my frames to Aztec Manufacturing in Carson City, Nevada.
This is a professional machine shop specializing in model railroad products and they do a much better job than I could ever do. They only charge $10.00 for most N scale frame milling, and for me it's always been money well spent. They have a list of frame milling available and prices at http://www.aztectrains.com/dccframes.html.
If you send several frames at one time you can reduce the cost of shipping per frame. I like to use the Priority Mail small flat rate box for the best savings.
You'll need to first completely disassemble you engine so that just the frame gets sent in. Be sure to account for all the small parts including nuts and shoulder washers as those sometimes get stuck to the frame. I use small plastic zip lock bags that I purchased on ebay to store all the small parts. I put the motor in a separate small bag so that no small parts can get into it. I normally put the shell, trucks, and fuel tank in the original box. If there is more than one engine being disassembled at the same time I will mark all of the bags so the parts don't get mixed up.
This photo shows how I bag up and label the engine parts until I get the milled frame back from Aztec. If you have several of the same model that you are working with at the same time, label the bags by road number or just 1, 2, 3, etc.
To contact Aztec Manufacturing:
Aztec Manufacturing Co.
2701 Conestoga Drive, # 113
Carson City, NV 89706