Hi!
Have you tested if the error occurs if a specific memory slot is used? If you test all modules in slot DIMM1, and all are OK there, this does not necessarily imply that the system will work fine if DIMM2 is used instead - corrosion or bending of the contacs as well as bad soldering points can prevent this.
If your problem is not caused by using a specific memorty slot (that is, yout two working modules are error-free in any memory slot), but sill occurs as soon as two modules are used, this is a hint to an electrical problem:
Data (and adress information) is transferred between the memory and the chipset by a stream of voltage pulses on each data line, where one voltage leven stands for a logical 1 and the other for a 0. In between, you'll find an "undefined" range. Data and adress transfer requires permanent changes between these two "valid" voltage levels. However, if the electrical circuit made up by these data lines is bad, it takes too long (compared with the memory clock and the chosen timing values) to take the transition between the "valid" levels - and at the time data is read by the chipset (or written to the memory cells), the voltage is somewhere in the undefined range, resulting in a memory error.
Basically, there are two ways to deal with this situation:
1. Fine-tune the memory clock and timing, so the transition to the opposite voltage level has enough time to complete. This can be done by decreasing the memory clock (which is - as I wrote above - usually coupled to the CPU clock and is therefore not favourable. However, if you have e.g. PC133 memory and a FSB100 CPU, vou can safely run the memory at 100 MHz as well - depending on your chipset, this will cause only a minor performance loss - or even slightly increase performance, expecially with Intel's Pentium II/Pentium III chipsets), or by slowing down the memory timing (please see your mainboard's manual if you can manually set the timing and where to do this). Talking about memory timing, the numbers displayed in the BIOS setup are time delays, measured in memory clock ticks - so higher values stand for longer delays, allowing the signals a bit more time to settle. As a result, higher numbers are safer here - but also a bit slower (usually, this can be measured with the right equipment, but the decrease is far too slow to be perceived by a human without any expensive instruments).
Still about memory timings, each SDRAM module carries a small EEPROM chip, named the "SPD EEPROM" - there, the memory manufacturer stores the fastest safe timing parameters for this module for the different possible clock speeds. During boot-up, the BIOS evaluates the SPD contents of all modules it finds, and can thus set the "overall" fastest safe timing automatically. In practice, this does not always work - e.g., sometimes only the SPD EEPROM on the first memory slot is evaluated. As a result, if the module in this slot permits faster timings than the module on the second slot, this will result in memory errors. Simply swapping the modules can solve this problem in this situation - so you should try this, too.
2. Modify the electrical parameters: The time required to transition from one voltage level to the next basically depends on the resistance, capacitance and inductance in the circuit, as well as on the driving voltage. Capacitance and inductance can not be modified - they are defined by the design of the memory module, chipset and mainboard, and can vary over lifetime due to component aging. However, you can decrease the resistance in the circuit be removing and re-inserting the memory modules (this will wear off corrosion on the electricval contacts).
In addition to this, most mainboards allow you to increase the operating voltage for the memory above the specification value; this will also result in a faster transition to the other valid voltage range and therefore stabilize the memory subsystem. However, increasing the voltage also causes increased thermal stress to the system, which in turn speeds up component aging - and shortens lifetime.
About old PCs and backup disks: 2 x Pentium III @ 450 MHz, seven hard drives (one to boot off, and three pairs of identical drives), where every two identical drives are joined into one software-driven RAID-1 array; LVM across all RAIDs (roughly 1,5 TBytes usable on the volume group, plus the biggest part of the boot drive). File access via FTP, Samba ("Windows network"), NFS, HTTP; along with some other gadgets like self-diagnostics and hardware monitoring. Running fine on Debian Etch (stripped down to the essential system components - no graphical desktop, no office, multimedia or development stuff; the whole operating system with all installed software consumes only about 500 MBytes of hard drive space) - with a mere 256 MByte RAM (of which typically two thirds are used as hard drive cache...) and a swap file that is practically never touched. Delivers up to 40 MByte/sec. across the network - which is roughly sufficient for home use. ;-) You see: 256 MBytes can well be enough...