Programming the NCE decoder/receiver that I bought for my engines is just about as trivial as can be. The quick-start manual that comes with the S-CAB system has clear and simple instructions for how to do that. Since the system only uses two-digit addresses, I program my decoders to use the last two digits of the road number. I was able to get my NW2 switcher to run nice and slow programming the CVs with the S-CAB throttle. One of the things I learned, though, is that engines respond differently to pure DC. In all cases they run more smoothly. However, some engines may need some extra work. In the case of my RS-1, I had to really work with all the CVs to get something reasonable. In the case of my FA-2, I had to first replace the motor with a better-quality one.
One really neat feature I like about the S-CAB system, is that you can set it up such that a particular locomotive address is always the default one when you turn the throttle on. I use my NW2 switcher on my home layout most of the time. Its last two digits are "12", so I have the throttle set to default to 12, which allows me to run the switcher right away. Another nice operational feature is that if you have two engines (or more, up to 15) that you are operating, once the address has been punched in, you can switch between the various engines simply by pressing the "Loco#" button. Each press cycles through the list of already-punched-in addresses. Of course, when you turn the throttle off, those numbers are "forgotten".
Programming the handful of CVs that the S-CAB throttle allows you to do is very simple to do, and has provided me with sufficient control. However, if you desire more control over programming the CVs, if you want to program the CVs of a sound decoder, or if you want to be able to read back the CVs of a decoder, then you are going to need another piece of equipment. Neil sells the RAPA board. He has only tested it with the NCE PowerCAB controller, but it might work with a Digitrax or other DCC system as well (e-mail him or contact others who have tried this approach, first).
(external link: CV Programming with RAPA Board)
If you don't have an appropriate controller (such as the NCE PowerCAB) or none of your friends do, there is another solution to fully program the CVs of your engine's decoder. The CVP T5000 throttle. You might consider this your "power-user" throttle, while the S-CAB throttle would be a great operating-session/guest-operator throttle. The CVP T5000 throttle uses the exact same transmitter chip that the S-CAB system uses, so that throttle can communicate with the receiver in your engine. It is also a full-blown decoder programmer that doesn't require any other components to be able to program. It, also, does not read back the values stored in the decoder. It uses a rotary dial for controlling the speed, which some people might prefer over the S-CAB slider.