I used to shoot for every 18 months or so, but I really enjoy upgrading and spending a few hundred bucks for a new card once in a while isn't a big deal to me. So I've upgraded 3 times in the last 4 generations, and it would have been 4 times if I considered the 3870 an upgrade over the 2900.
Before the 2900 my video card history looked like this: Radeon 7200 (what a great card, half the cost of the GeForce 2 GTS my buddy bought, slower in benches, but we could never tell a difference in the games we played.... other than lack of DX8)-> GeForce Ti4200 (I miss that card) -> GeForce 6800nu (I don't miss that piece of garbage) -> GeForce 6800GS (12 pipe version, EVGA factory OC to a whopping 490MHz... great card!) -> Radeon 2900... While the Radeon 2900 was a huge let down, it was a great purchase for me, I got a 2900 Pro for less than a GeForce 8800GTS 320MB and it overclocked from 600MHz to 800MHz+. Great bang for the buck at the time.