That's what server side conflict detection is for, but you're right, you would run into some problems - as you would in almost any scenario where a DHCP server fails, I think unless you're clustering.
Pardon my rambling, and I understand if you stop reading now, but...the "secondary" would detect active IPs for any online computers (and not hand out any active, online IPs, because it would ping first to see if it was active), but it would not detect active *leases* from the "primary" for computers that are offline, and that would result in some conflicts when those offline computers come on and their addresses have been leased.
However, even with the preferred "split scope" method, you still run into problems if your scopes are more than 50% used (because it's not a perfect world). If you've got a class C scope that is split between two servers, and you're handing out 100 addresses from SERVER1, and 100 addresses from SERVER2, you'd have to expand the scope of the server that does not fail to accomodate the additional hosts that need IPs resulting in the exact same behavior as if you did it like Karidian is trying to do.
I think the only 100% safe way would be to use 33% of your scopes, and leave "white space" in the middle to activate in the event of a failure of one of your dhcp servers. That way, you could expand the scope into that white space, making additional, unique addresses available without causing any conflicts whatsoever.
There are probably other ways, but they would involve complicated routing setups, etc.