Some laptops can accommodate a second drive but most can't. You need to check the specs on your laptop (or undo some screws) to see if it has a second HDD bay.
Your choices are to go for an external drive, replace your internal drive with a larger one or maybe use some large USB sticks depending on how much additional space you need. You could put in a new drive, load up XP or Win 7 (either one is better than Vista - I've been there) or Vista if you must, then get an external enclosure and use your old drive as an extra drive (also makes the conversion easier). With a faster and larger drive and a better OS, your machine will seem like new.
I believe that Western Digital and Seagate are the largest and generally, their prices and quality is similar. It's best to check out specific drives before you buy as some models have had problems.
For RAM, again you need to check the specs for the machine. Under 32 bit systems I believe that you are generally limited to 1 gig of RAM. Under 64-bit mode you can go higher.
In case of laptops you yourself cannot do this. If you go to the customer service dpt, then thy may do this operation for you if only the laptop is designed that way. otherwise you will need an external HDD.
That's true of some but not all laptops. My old HP 17" laptop had two drive bays and it was just a matter of undoing the screws, attaching the HDD HP adaptor and sliding it in. I don't think too many have that option or make it that easy.