I've never programmed one for the RC, but I have for LEGO.
The first thing I'd say is that the motors that come with the kit have a prefered direction, meaning they spin better one way than another, which is why you get the clockwise vs. counter-clockwise thing. (All motors have this problem, but for really good ones, the difference is neglible.) This is also the reason you don't go straight, even though the same value is being sent to the motors which are currently driving you.
There are two ways to correct this. The first involves some semi-complicated programming because you create a PID loop. The idea of this loop is that it will monitor your wheel rotations (using encoders or some such thing) and if anything disturbs the speeds from the values you request, such as a bump or one motor running slower than the other, it will adjust the outputs automatically.
The other way is to use encoders (or some other method) to measure the difference in the motor speeds and hard code that into your program. Obviously, it isn't as elegant and is harder to change when you motors get more broken in (or broken

), but it's fast and easy... Actually, with a Killough, it may be just as difficult to do, because you must store the differences between all (3? I'm assuming a normal setup) the motors and choose the right one to use for which ones you are currently running.
Hope that helps!
P.S. What motion exactly are you refering to when you say straffing? One motor on full? Two? Two at differing speeds? Maybe I'm just not thinking right now...
