As each miner works out which nonces it has tried, does it notify the network so that energy isn't wasted on re-processing the same thing by each node? Or is it totally competitive with everyone for themselves?
Miners that aren't cooperating will never replicate work because they each want to get a different block as the next official block. If nothing else, the account the mining fee is paid to will be different. (And this ripples up to the header.)
For miners that are cooperating, work units are assigned by the mining pool. The pool will typically embed a different coinbase in the work units it assigns to each miner. When a miner finishes processing a work unit, it requests a new work unit (with a new coinbase) from the mining pool.
So there should never be any replicated work.
Solo miners and mining pools as a whole compete against one another to find the correct hash to solve the block first. As they each want a different address to be a part of the solution (so they can earn coins with their Bitcoin address), there is no overlapping per se. It's just a race to find a solution to your problem under common rules.
Pooled miners, that is the miners that mine together in a pool on the other hand work together to solve the same problem, each being assigned a range of possible solutions to check. Since the pools want to maximize their profits, they shouldn't assign the same work to more than one miner, unless they want to double check that it was solved correctly (and the miner wasn't cheating).
But if miners are competing each other, actually a frauder doesn't need to have more computational power than all the integrate nodes, he only needs to have more computational power than the best of the integrate ones. And more, the system can not be used for large amount of transactions, if one transaction involves billions of usd, I may prepare a huge farm of computer pool, to revise the blockchain.