I don't think it should be time based, I think it should be based on when the advancing technology allows for meaningful upgrades to the program.
A two year minimum frequency would still be good...people invest too much time developing releases for the new product and there has to be allowances for the learning curve.