Vista should not be able to 'get around' this issue. I suppose it was installed with matching memory, then someone later put in that 2 gig stick.
OS's constantly are sending information back and forth through the memory. When you have errors in the RAM, you started getting a bit of gibberish back. That gibberish gets written back as fact. That bad fact, as well as new bad facts, get sent through the #$%*storm again, turning into more gibberish, which eventually turns into a landslide of whatthefsckery after a bit. Eventually, #$%* stops working.