To be honest, I cannot tell the difference between 333MHz DDR-RAM and 400MHz DDR-RAM. My PC has 333MHz DDR-RAM and as after reading an overclocking article about tweaking the BIOS, I decided to try setting the RAM at 400MHz. The PC booted fine and I ran a linux RAM memory test from SuSE linux (took an hour to complete) and passed. I tried encoding various audio & video clips, but they took about the same length (about 30 seconds) or a second shorter than with the RAM at 333MHz. In the end, I set the RAM back to 333MHz. I would recommend reading reviews on 400MHz to see if it is really worth paying extra for this extra RAM speed or using the cost saving for a better hard drive.
For Hard drive speeds, go for the hard drive with the shortest access (seek) times and at least 7,200RPM as a priority. A seek time difference of even 1ms makes a noticeable difference, particularily when it comes to booting the PC and doing file searches. I have a Maxtor 7,200RPM 80GB ATA133 2MB cache with 8.7avg access time. Even with 60GB on this drive, its throughput and seek times are much quicker than my 20GB ATA100 7,200RPM (9ms seek time) Fijitisu hard drive with 10GB used. I also recommend two smaller hard drives instead of one large one. I use a 10GB partition on the 80GB hard drive for Windows XP and the remaining space for storage. I use a 10GB partition on the 20GB hard drive for Program Files and the remaining space for Redhat Linux. This makes a noticeable improvement in running large applications such as Visual C++.
For two hard drives, You can set a tweak in the registry by setting the key 'ProgramFilesDir' in "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion" to the drive letter of your second hard drive. After this, each application you install will have the default installation of your second hard drive and system files will be placed on your Windows installation drive.