The msi database is not a system file, so sfc won't find anything. The only solution I know of is reinstalling windows. I'm sure the problem is fixable (so you may want to contact M$ support), but I've never seen it myself, so I never had the chance to debug it. Without that, I cannot invent a solution unfortunately.
If you happen to be a geek, you may want to debug it yourself. What files, registry entries etc. it tries to reach, what function call fails etc. You may even hunt it down.
CPU: AMD Phenom II X4 810 @ 3120MHz | RAM: Kingmax 2x2GB DDR2 800 @ 833MHz| MoBo: MSI K9A2 CF v1.0 (BIOS: 1.D)| GPU: Asus HD 6850 1024MB (DirectCu) @ 835/1135MHz | Display: L24FHD | PSU: PC Power & Cooling Silencer 750 Quad | OS: MS Windows 3.11 Pro x64