I'm theorizing here. I've always generally accepted that this is what went down.
-Nick Meyer has said on several occasions that he was the driving force behind changing the uniforms in The Wrath of Khan. He didn't like the The Motion Picture versions and also wanted a more naval like approach to the uniforms for his film. That the succeeding films continued using them is likely a combination of cost-cutting measures and general acceptance of the uniforms as, well, acceptable.
-The original Next Generation jumpsuits changed to the newer, two-piece versions (for the men, anyway) largely because of physical comfort issues. Stewart reportedly had back pains from wearing the jumpsuits day in and out, and they were not easy to cool down in while under hot studio lighting rigs for hours on end.
The switch from the Deep Space Nine/Voyager uniform to the First Contact style uniforms, I think, was done for fairly practical purposes -- to supply Voyager with much-needed wardrobe for it's on screen extras and background performers. Utilizing the feature film budget of First Contact would then be the obvious choice to supplement such a switch and then relay all the background wardrobe from that film to DS9 -- though it's painfully obvious how poorly planned the "switch" was handled in the first episode the First Contact uniforms appear on DS9 -- you have TNG uniforms, the TNG/early DS9 admiral's tunic, regular DS9 uniforms and the new FC uniforms all appearing at one point or another. Yeesh!
The same thing happened with all the Borg makeup, prosthetics, wardrobe and sets after First Contact - Suddenly, Voyager found itself in Borg territory. Likewise, after Nemesis, suddenly the Reman wardrobe was being repurposed as Xindi-Reptilian outfits and then later all the Romulan clothing and apparel showed up in the Romulan-centric stories we got in year four.
I've heard it was all done to sell more action figures, but the fact of the matter is anyone who paid attention to the show could have come up with line after line of action figures without the uniform changes, so it strikes me as unlikely that this is the ONLY reason the changes were made.
If you want to get hung up on 'why' in the Star Trek universe, I look at it as TNG uniforms being 'starship-duty' attire, while DS9/Voyager uniforms are for station-based personnel. The shows, unfortunately weren't entirely consistent, but I don't tend to worry about that much.