UDP is "stateless" - it just blasts away packets and hopes for the best. As there's no error checking at either end, it's faster - but you get "lag" because some packets are missing/corrupted, hence why your CS man leaps from one side of the screen to the other... it's because the packets for the motion in between are missing, or arriving too infrequently to be any use, by which time the game might "guess" where they moved to.
TCP, on the other hand, has acknowledgement on packet receipt, and calls for a resend if there are any packets missing. This creates overheads, and doesn't make any sense seeing as the packets, under TCP, have to be scheduled into the correct order.
UDP is better, seeing as it's a whole damn lot faster, which is especially important if you're playing something like UT. TCP creates too many overheads, and the 2-way communication slows everything right down.
Use UDP.