Simple answer:
This shouldn't take longer than a minute, and all clients *should* only check for DHCP status after 1/2 their lease time is up. If you have a lease time of 1 day, clients check DHCP servers to renew after 12 hours. The only problem would be in clients booting up and/or restarting. They would be stuck on an automatically assigned IP. This goes for Windows machines, not entirely sure how Macs work, though if they go with the DCHP spec, they should also only renew after 12 hours (assuming a 1 day lease time).
Also: because of the likelyhood of a machine booting/rebooting every 5 minutes, you probably shouldn't scan every 5 minutes. Perhaps every hour would be more logical unless you are actually having problems and need to track down a malicious user.
http://www.dhcp-handbook.com/dhcp_faq.html under "What are the Gotcha's?" is also a good resource.
Longer more involved junk if you feel like reading:
I'm curious... how do you plan on "scanning" for DHCP?
I believe it runs on UDP ports 67/68. If you could use that, perhaps something could be written to check every IP on your network for hosts that respond on those ports. But then again, how do you determine which IP ranges to check?
It's too bad we can't somehow use information from the switches. Perhaps then we could get a list of MACs from the switches and then query those MACs to determine who responds on ports 67/68. But then we also have to figure out what IP each MAC corresponds to. That would really cut down on the number of IPs to check though, as we would only check MACs/IPs that currently existed on our network.
Once found, how do you intend to prevent new clients from using it? You mention an IP alias on the internal interface... but which internal inferface is that and how does it help new clients not use it? Seems like your email/page seems possible and makes sense, but it also seems like it doesn't help at all unless you can, again, interface with the e-rate switches... then you could write some sort of script which connects to the switch and shuts down the offending port, then sends and email/page to the admin/responsible person listing which switch and which port are the problem..... perl + regular expressions could become really handy
.
All this could be done without taking down the DHCP servers at all