How to link animation of object A to object B while keeping A's original location?
One way to recycle motion without having the objects overlap is to use NLAs.  This is not exactly trivial.  You have to


place the action inside an action strip 
put a location keyframe on the second object
change the action strip blending mode from Replace to Add


Another strategy would be to make the second object a child of an Empty or other object.  You can adjust the location of the parent to set the origin of the modified coordinate system.

In the following screenshot you can see the lower left window is the NLA editor illustrating that Cube.001 has one NlaTrack with the shared action, and its primary action is the offset keyframe.  The action strip has its Blending set to Add.

In the upper right outliner window you can see Cube.002 is parented to an Empty.