All the answers above misunderstood Øystein Amundsen’s question.
The only way to stabilize the force upon it starts is to set node.x and node.y a proper value.
Please note that the node is the data of d3.js, not the represented DOM type.
For example, if you load
nodes = [{"id": a}, {"id": b}, {"id": c}]
into
d3.layout.force().nodes(nodes)
you have to set all .x and .y of all elements in array of nodes
it will be like this ( in coffeescript )
nodes = [{"id": a}, {"id": b}, {"id": c}]
for i in [0..2]
nodes[i].x = 500 #the initial x position of node
nodes[i].y = 300 #the initial y position of node
d3.layout.force().nodes(nodes).links(links)
then the nodes will start at the position when force.start().
this would avoid the chaos.