After reading many of the responses, I think the simplest action for you to take is what I have below. First, let me say that there were a lot of wonderful suggestions & very inportant points made. Now, here is a different spin.
I think that the points about malware, and the attachments you are trying to open, and the nature of your internet connection are all important to note. That said, there are a few questions that you need to answer in order to find your solution.
What kind of anti-virus program are you running? and has it been kept up-to-date? Most AV programs have a self-update feature, but this can either fail or be deactivated. To check this, open the anti-virus program from the Start menu|Programs location, or if available, any desktop icon it may have created. Once open, go to the Help|About... menu & you should find something that gives the date of the most recent virus definitions installed. Anything more than a week old should be updated. The Help menu of the program should be able to give you specific instructions on how to do this.
NOTE: Some anti-virus programs have a limited period during which updates are provided. You will have to pay for a subscription renewal or buy an updated version of the program to extend this coverage.
It is very important to keep the virus checker updated. In my experience, there have been just 2 virus checkers that I have never heard any complaints about for failing to catch a virus: Grisoft AVG free & Trend Micro's PCcillin. The first is free & the second costs under $50 dollars & includes a firewall, malware scanner & Microsoft patch checker. PCcillin also updates multiple times daily, if necessary.
The Second Question is: Do you have a firewall between your PC & the internet? I would guess that you do not. This protection is important & helps keep bad programs from using your internet connection for "no good". Connected with this question is: What kind of internet connection are you using? Is it dialup, or cable, or dsl? For a simple dialup connection, a software firewall will suffice. Zone Alarm is a very well-respected free firewall. If you have been set up with either cable or dsl, the connection is always open & your computer can easily receive and transmit at the hands of a virus, so to speak. You should have a hardware firewall between the dsl/cable modem (sometimes called a gateway or a bridge by the service providers) and your PC. This is in addition to the software firewall.
Thirdly: What is your email program? I would guess Outlook Express. That is the default program that comes with Windows & the one that most new computer owners automatically use. I would suggest changing it to something else that is a little less prone to virus attacks. You can look on cnet downloads for a free email client. People hate me when I say this, but I suggest getting an email client (program) that can be set to "text only" mode. This mode is a little less prone to facilitate email viruses, but the fancy graphics, pictures, & link buttons can't be seen. Guess what? That is the reason why it is a little safer.
Fourth: What kind of attachments are your friends sending you? and, what kinds of precautions are they taking to avoid becoming "spam-bots", vehicles for passing spam, viruses, & malware on to others after becoming infected themselves? You can't assume that, just because a friend's return address is on an email, that they really sent it to you. Viruses will sometimes commandeer a PC and use it to send mail to everybody in the owner's "friends" list or address book without the owner's knowlege, or they will use the address book listings as the return address of emails generated by the virus. In other words, you may be receiving mail from someone who has a virus and has one of your friends' addresses in their address book. Under this scenario, you may even receive email from yourself!
The rundll application is a shortcut to activate a part of a program so that you have most of its functionalities available without having to formally open the complete program first. As was said elsewhere, it lets you, say, open Microsoft Word just by double-clicking on a word document's file icon, or to listen to the music in a .WAV file just by double-clicking on it.
When you click, or double-click, on an attachment, there is an association with some program that will let you see / hear/ read the contents of the attachment. Some kinds of attachments are:
.wav, .mp3, .wma, & so on, are music files
.jpg, .jpeg, .bmp, .gif, .pcx, & so on, are pictures
.mov, .mpg, .mpeg, .avi, & so on are movies
They should all be associated with an appropriate "file viewer" that rundll32.exe will tap into to show you the attachment. If that association / link is broken or damaged, you may get the "rundll" error message. This is why you need to record a list of the file names for the attachments causing this error. This information is important in the diagnosis.
All these questions address the differences between your in-home set up and the testing bench at the repair shop. Obviously, since the shop does not experience the problem you see, it must be related to differences between your home setup & theirs or between the uses to which you put your PC versus what they do with it. I am pretty sure they do not access your email as part of their repair work & most likely the tech does not sit with you while you demonstrate the problem.
Also, please try to write down the exact error messages you get, including any codes or program references that might be included. They could be a clue to the culprit.
Finally, try to open a Word document just by double-clicking on its icon in My Documents or in Windows Explorer (right-click on My Computer & select Explore from the resulting mini-menu to get it). If this works, rundll32.exe is probably right where it is supposed to be. It is possible that, if the error comes up for a picture file (like .jpg) or a sound file (like .mp3), that the program settings for these file associations with a program have been damaged or hijacked by installing multiple "viewer" programs. Windows Media Player, RealPlayer, Jukebox, & a few other popular programs all compete for the right to open & play these files. If you have several installed, one may have corrupted the file association & could produce this error (long shot here, but it has happened). Internet web sites will sometimes insist on installing "plug-ins" to play these files & destroy existing program associations in the process.
Inexperienced PC users can often be led to allow these installations in order to access desired files. Not only can they corrupt file associations; but some of them contain nasty surprises hidden inside, such as spyware & malware.
On the other hand, your email program may need to have a mini-plugin installed into it before it can call up the appropriate viewer program for the attachment you want to open. These plugins are usually .dll files. If that is the case, you may need to have the viewer program re-installed to see if it will install the .dll file that rundll32.exe is looking for. It is very likely that the error does not mean that rundll32.exe itself is missing, but that the .dll file it is trying to open is the one that is MIA.
Last question: Are the errors random, or can they be associated with a particular sender or type of attachment? Some of your correspondents may be using an email program that formats mail in a way that is incompatible with your receiving program. (Refer to Question 3.)
Just as a side note: I have actually told my friends & family that I will not open most of the attachments they send me because of concerns I have about hidden viruses, etc., that can be embedded in them, especially if they have been forwarded from person to person a lot before coming to me. Not surprisingly, they have all had some degree of virus trouble & I have not.
If you can answer these questions, I can better point you to a specific solution that will help cure your problem. I would prefer to do that before having you go crazy making unnecessary changes to your system. Also, all of the points made here, so far, are independent of the operating system you are running.