If Microsoft can figure out whether a product key is being installed on a new computer or reinstalled on an old one, surely it should be able to recognize that you've reinstalled on the same machine (except for the hard drive) that you previously upgraded, right?