This may be normal behaviour - I'll try to explain why this could be the case.
NCrunch replicates build logic across servers in the grid. This means that if you are running a grid with 2 remote servers and local processing turned on, NCrunch will build your solution 3 times - once on each machine. This was a design decision made to try and simplify compatibility across the grid and to make it easier to operate the distributed processing with local processing disabled.
A side-effect of this is that the solution will need to be built on a remote server every time a connection has been established to this server. This is because the workspaces and session-related information on a remote server is cleared when the connection is lost, and needs to be recreated when the connection has been re-established.
So if you have a remote server that is at the end of an unreliable connection (for example, if you're using a laptop with a weak WiFi signal), and the connection is intermittently lost, NCrunch will automatically reconnect, then resync with the remote node and re-run the builds on this node.
Roughly how often do you notice this happening? Does it seem to correlate with disconnections from the nodes?