But it IS possible to connect an SD card. Trust me, when dealing with microcontrollers 2GB is a huge amount.
Correct, but that's because the SD card standard is using a clocked data line. The microcontroller or whatever is sitting on the other side can send the data at any speed it wishes, up to a certain defined maximum speed. IDE and SATA are both using a constant speed which means that the host must communicate at a certain frequency, which the Atmega in the Arduino is far too slow for.