Oh my goodness. I just had to move the drag function to the group instead of the node. I get a little stupid late at night! Haha.
var dragNode = d3.behavior.drag()
.on("drag", function(d,i) {
d.x += d3.event.dx
d.y += d3.event.dy
d3.select(this).attr("transform", function(d,i){
return "translate(" + d.x+","+d.y+ ")";
})
link.attr("x1", function(d) { return d.source.x; })
.attr("y1", function(d) { return d.source.y; })
.attr("x2", function(d) { return d.target.x; })
.attr("y2", function(d) { return d.target.y; });
});
var circleGroups = svg.selectAll("node")
.data(force.nodes())
.enter()
.append("svg:g")
.call(dragNode);