Encountered this knarly problem recently and its solution took some arriving at, so worth publishing.
A system with MDAC 2.7 received the install of an application that uses MDAC 2.1. In theory both versions of MDAC can live happily side-by-side, but for some reason the install replaced sqloledb.dll with an incompatible version.
Re-installing MDAC 2.7 didn't detect the change, so didn't fix this issue. The only resolution was to install MDAC 2.8.