I'm looking at past solutions and they're kind of questionable. They involve 1) downloading and installing older versions of software that are known to cause C++ runtime errors, 2) sales pitches
that only want you to buy third-party software, and 3) solutions proposed on this board in which, sadly, the OP doesn't reply back to on whether or not they worked!
Your problem affects the computer's very basic logon procedure, so it is a big problem that solution 1) won't fix, solution 2) might fix but may prove more expensive than it should be, and it's something that solution 3), well... there's none that way as far as I can research via Google.
I would start through the tools available to you in Vista. Safe Mode boot using your F8 key at your computer's initial boot screen, open your Start Menu, open "Accessories" menu. Right-click on "Command Prompt" and left-click on "Run as Administrator."
Type in
sfc /scannow. Wait until it's done. Reboot.
See if the computer boots up successfully. If not, shut down. Reboot into Safe Mode. Repeat
sfc /scannow (the tool sometimes only fixes one file at a time). See if it works in regular boot. If not, shut down.
While you're in one of those Safe Modes and before you run sfc, open your "Control Panel." Open "Programs and Features." You see a list of all installed programs by name, publisher, installation date and size. Click once on the little grey arrow to the right of "Publisher." You've sorted all installed programs by publisher. Scroll down to "Microsoft Corporation"-published programs.
You are looking for anything that says "Microsoft .NET Framework."
There should only be one of these. Write the version number down and the service pack;
for instance, my installed version is 3.5 SP1 for a 64-bit Vista installation.)
Anyway, if sfc doesn't work, you can try and force a .NET framework fix.
The .NET framework is a big-ass library that contains information Vista uses to read and run popular and common third-party languages (like C++, which is a powerful language that's very commonly found. I loves me some C++). Anyway, because of its size this "library" can accidentally manifest an error, and since it's integral to the operation of many programs it's pretty darned important.
On
the official Microsoft site .NET framework download page there is a list on the right of prior versions of the framework as well as the latest package, but you don't want to download the latest package if it's not the version you saw in your list of installed programs.
You want the version and service pack you have right now. Find it and download it.
Then carefully read "
how to repair an existing installation of the .NET Framework" and do what it says.
If that fix doesn't work, holler back.