Why not do something like (in pseudocode)
if(Mouse.LeftButton.IsDown() && !oldMouseState.LeftButton.IsDown())
dragRectangle.X = oldMousePosition.X;
dragRectangle.Y = oldMousePosition.Y;
dragRectangle.Width = oldMousePosition.X - Mouse.Position.X;
dragRectangle.Height = oldMousePosition.Y - Mouse.Position.Y;
That would give you a rectangle who's left corner origin should be at the position the mouse was clicked and the width would be wherever the mouse was this update?