The problem here is subtle. Since a Graph[…] is not a Graphics[…] (i.e., the Heads are different) one needs to turn your CompleteGraph into a set of Graphics directives to be placed within a Graphics. Using Show does this implicitly, (i.e., it converts the Graph to a Graphics behind the scenes and then combines them) but to get the control that you need it’s probably best to take this step explicitly. (Here is a thread on this on Mathematica Stack Exchange–always a very good resource to go to see what the experts are saying about subtle issues: http://mathematica.stackexchange.com/questions/25023/convert-graph-to-graphics).
So, with that advice here is the version of your problem with the Line replaced by the CompleteGraph:
Manipulate[
Graphics[
{
Locator[Dynamic[p1], Enabled -> move],
Locator[Dynamic[p2], Enabled -> ! move],
Dynamic[
First[Show[CompleteGraph[2, VertexCoordinates -> {p1, p2}]]]]},
PlotRange -> 1.1, Background -> White], {{p1, {0, 0}},
ControlType -> None},
{{p2, {1, 1}}, ControlType -> None},
{{move, False}, {False, True}},
Deployed -> True]
Or using the explicit GraphComputation`GraphConvertToGraphics function from the StackExchange advice:
Manipulate[
Graphics[
{
Locator[Dynamic[p1], Enabled -> move],
Locator[Dynamic[p2], Enabled -> ! move],
Dynamic[
First[GraphComputation`GraphConvertToGraphics[
CompleteGraph[2, VertexCoordinates -> {p1, p2}]]]]},
PlotRange -> 1.1, Background -> White], {{p1, {0, 0}},
ControlType -> None},
{{p2, {1, 1}}, ControlType -> None},
{{move, False}, {False, True}},
Deployed -> True]
But, remember that GraphComputation`GraphConvertToGraphics is officially undocumented (and hence can vanish or change or have its name changed without notice in any future version of Mathematica), so the first approach (using Show) is safest.
[1]: http://mathematica.stackexchange.com/questions/25023/convert-graph-to-graphics