Animate location and scale relative to starting point
After some digging, I think the best approach is to animate deltaLoc and deltaScale instead of Loc and Scale. That's a bit of a pain because you can't just position the object in the viewport and keyframe it. You have to use the Delta Transform section of the Properties panel (under Object properties). 


First keyframe the starting value at the beginning of the animation action (by pressing 'I' while hovering over the Delta Transform values in the Properties panel). The starting value will usually be 0 for DeltaLoc and DeltaRot or 1.0 for DeltaScale.
Then move and/or scale the object by changing these delta values in the Properties panel.
Once they object is in the correct ending position, add another keyframe for DeltaLoc and/or DeltaRot (again by pressing 'I' while hovering over the values).


Of course, you can add further keyframes for DeltaLoc and DeltaRot if you want a more complex animation.

Now when you append the object into a new scene you can position and scale it as appropriate and the animation will run relative to the object's new starting position and scale. 

The advantage of this approach over using a parented empty is that you don't have to deal with an extra object.