Try reading this little article:
https://en.bitcoin.it/wiki/Block_hashing_algorithmThe nonce is not the only thing that changes. There are actually 6 "parts" that get grouped together and hashed, and the nonce range is only one of those. The other 5 all get updated at different intervals, but it's designed so that we're never working on the same work twice. Ever.
Also, see
Here. I like the way they worded it: "Even a small change in the message will result in a mostly different hash, due to the avalanche effect." You can see their examples in the wiki article that illustrate this point.