Why does Debug.DrawLine offset sometimes?

I was testing a simple Linecast operation and decided to use Debug.DrawLine to draw line between my objects. I notice that when I select one of the objects while the editor is playing the line draw is offset. Here's the script:

var playerPosition: Transform;
var subjectPosition: Transform;
var hit: RaycastHit;

    function Update () {

        if(Physics.Linecast(playerPosition.position, subjectPosition.position, hit)) 
        {
            if(subjectPosition.collider == hit.collider) 

                Debug.DrawLine(playerPosition.position, subjectPosition.position, Color.red);

            else  
                Debug.DrawLine(playerPosition.position, subjectPosition.position, Color.green);
        }

    }

I just setup a cube (player) and sphere (subject) and attached the script to the cube. When I don't touch anything, it behaves as expected:

Drawline as expected

When I manipulate the player object(cube), the line draw shifts all over the place:

Drawline offset

If I move the sphere around it behaves as I would expect.

You were probably comparing the line endpoints to where you saw the translate gizmo in the scene view. Where the translate gizmo appears in the scene view is dependent on what your "Gizmo Position" is set to. If it is set to "Center", it will appear at the center of it's bounding box. It sounds like you want it set to "Pivot".

See the Gizmo Display Toggles portion of this guide: http://unity3d.com/support/documentation/Manual/Positioning%20GameObjects.html