Even a low end i7 (eg. i7-860 or i7-930) should be enough to last three years. Processors these days are getting to a level where apps can't quite utilize all their power.
I have an i7 860, which I purchased for $240 after everything. It's an awesome processor - extremely fast, very stable (no issues at all during load testing), easily overclockable, and runs relatively cool. The processor eases thru my multiple instances of virtual machines, Folding @Home, and audio/video encoding.
The cost of something higher-end like the i7 960 is not worth it. The only reason they exist is because enthusiasts prefer to have the best they can afford, even if it serves no real purpose. For the price of the 960, you can get something cheaper for now and upgrade 2yr later with the rest of the money. In fact, that will last you much longer than just buying something high-end.
There's no reason to wait until something new comes out because there's always new technology. The idea is to buy something when you think it's worth it.
For example, unless you have a clear need for the i7, I recommend that you take a look at the i5 6xx series. They're dual core processors with hyperthreading. Most apps can actually utilize the power that provides, and at the higher clock rates, it will outperform an equivalent-costing i7 for some common tasks. The power savings is also nice.