I find that when the phone or normal compass is in my car, it always points in the wrong direction. The reason is that all the metal in the car screws up the compass. Once I take it out of my car, it works fine.
Google Maps navigation appears to use your direction of motion to determine your heading. This is actually how it should be. When I mount the phone in my car, it is mounted to the right of the steering wheel which means I need to tilt the screen clockwise a bit so that it is facing me directly. The orientation of the phone is not necessarily the same as the car. Once my car is in motion, Google Maps will correctly show my car's orientation based on the motion. If it did not do this, it will always show the car driving slightly diagonally.