I am noticing that the TouchEnded event for a Part fires long before the Touched event, even if I've never touched the Part. Is this by design? I'm using a simple script to verify, and walking my character near and away from the Part in question:
script.Parent.Part.Touched:connect(
function(collidingPart)
print ("Touch Began for Part, collidingPart is " .. tostring(collidingPart))
end)
script.Parent.Part.TouchEnded:connect(
function(collidingPart)
print ("Touch Ended for Part, collidingPart is ".. tostring(collidingPart))
end)
Edit: I updated the code to print the colliding part, and I'm getting these parts from my avatar as I move close to the object without touching it. Here is a top-down image of the situation: http://imgur.com/a/LREjd
Touch Ended for Part, collidingPart is RightHand
Touch Ended for Part, collidingPart is RightLowerArm
Touch Ended for Part, collidingPart is RightUpperArm
Touch Ended for Part, collidingPart is LeftHand
Touch Ended for Part, collidingPart is LeftLowerArm
Touch Ended for Part, collidingPart is LeftUpperArm
It appears that these parts (RightHand, LeftHand etc.) are indeed the closest parts to the colliding object, but they're still very far from touching.

2 comments
type print(collidingPart) and tell us the results please
I've updated the question with this information, thank you very much for your help.