Here is a timeline explaining why it is 2007 instead of 2004:
The O6, Desmond, Frank, and Ben were back home for three years. Aaron grows from a baby to a toddler. Jack suffers numerous personal crises. Walt gets tall.
During that same three years, Richard stayed at the foot of the statue while some Others stayed at the Temple (he comments that he hasn’t seen Locke in three years).
The Non O6 Oceanic Survivors and Khana crew who survived jumped around in time. There, many of the Oceanics (Frogurt and redshirts) were flaming arrowed. Finally they settled in the 1970s (except Charlotte, who died in some version of the past).
The 70’s people work for the Dharma initiative (Sawyer, Juliet, Jin, Miles, and Dan in Ann Arbor). They spend three years there, while the three years pass for the O6.
When the O6 land the Ajira on Hyrda Island, it is still 2007. Sun, Frank, Ben, and Locke’s body remain in 2007.
However, Jack, Hurley, Kate, and Sayid jump back to 1977 with Sawyer et. al. Then Dan dies, and Juliet sets off the nuke.
That sends all of the time displaced Losties back to 2007 (Well, we still do not know if Rose and Bernard got sent back.)
That brings us to the current episodes, where it gets even more confusing. Now we have Universe A where it is 2007 and the characters are still acting like nothing odd (relatively speaking) has happened. Then we have Universe B(“The Mongooses”) where everyone is back in 2004 and the plane didn’t crash.
The real wildcard in all of this is John Locke. He is the only person who did not live out the three years between 2004 and 2007 (or '74 to '77). When he turned the frozen donkey wheel in late 2004 (or maybe early 2005), he was sent directly to 2007. Essentially, he gained three years of life, as he did not age. Of course, I don’t think it will benefit him now.