Getting the robot to go straight is tough and frustrating! If you can't get your robot to go straight reliable, everything that follows will just be irritating. Not all NXT motors are the same. We suggest running tests to see which motors are matched.
One such test its to connect two motors with a single axel, run them and if one kicks up they are not matched. For our team we have about 12 motor combinations to test. We didn't test them all, we stopped when we reached a pair that were matched.