Why does adding a curve modifier move my object to the center of the curve?
Make sure both your object center and curve center positions in the scene are exactly the same before using the modifier.
Also helps some times if the first curve vertex is exactly at the curve center (local coordinate [0,0,0] ), or ideally ata the start vertex of the curve.
Make sure both your object and curve have applied scales [1,1,1] in every axis. If it is not and you apply the scale make sure afterwards the curve radius is reset to zero. Do so by entering Edit Mode, selecting all vertex, right-clicking and pressing Set Curve Radius.
Also ensure both objects have matching rotations.
If you still get unexpected results try inverting the curve direction in Edit Mode by selecting one of its vertex and pressing the Revert button in the 3DView Tool shelf, or right-clicking it and pressing Switch Direction from the context menu.