Yeah - it's a bit strange that the two objects have to actually overlap for the flag to trigger, not just be touching each other's base lines... The second method [ if (distance(....)) ] is the better method and one I recently started using.
Until then I never tried having an object catch the ego, I'd only used follow.ego(); for having a companion (such as in SQ when Roger buys that droid, and it follows him to the ship) - so I didn't even notice the flag wasn't setting.