Your main problem is the size of the hard drive, NOT a SATA problem. The separate issue of access to SATA devices of any size I'll address later.
Up to the early 1990's access to a hard drive was done as part of the work of the OS and CPU, and they had to specify the Cylinder, Head and Sector co-ordinates to access a part of the disk containing the data required. As hard drives got larger, however, that became a problem because the maximum value of each of these three was an addressing limit. Rather than just extend the system, a new system was devised which turned over the addressing function to a dedicated controller built into the hard drive. The OS used a single binary number to specify the desired location (just a sequential numbering system for all the sectors on the disk), and the disk itself translated that into the traditional 3 co-ordinates, but using larger numbers to do it. It was called LBA for "Logical Block Addressing". At the time it was implemented in the mid-90's, they chose to use 28 binary bits in the LBA address, which would allow specifying at most 268,435,456 sectors, or 128 GB as M$ counts the term "GB". At the time, hard drives were typically 300 to 800 MB, and headed towards the huge capacity of 2GB! Future expansion was anticipated.
Wooops! By the end of the '90's it was clear that hard drive makers soon could do drives over that 128 GB size, and a new version of LBA was developed that uses 48 bits in the LBA address, not 28. This would allow drives up to 131,072 TB (right now we're using 2 TB max). To work, this new addressing scheme has to be implemented ("supported") in three places: in the hard drive itself, with its on-board controller that receives and decodes it, in the mobo hard disk controller that sends the address out, and in the Operating System that has to generate the address. The new system began to be implemented in updated hardware in the late '90's. On mobo's with hard disk controllers built into their chips, some could do it simply by updating the BIOS coding, and hence you see advice about "update your BIOS". Others could not do this, and a replacement add-in hard drive controller card was needed. At the hard drive itself, no upgrading was needed for older smaller drives, but obviously it was built into any drive over 128 GB. At the OS side, Win XP already was under development and its first release did NOT include 48-bit LBA support. However, it was added with Service Pack 1 and, of course, maintained in SP2 and SP3. M$ even went back one generation and added it to a late SP for Win 2000.
SATA was under development at that time, too, so 48-bit LBA support was included in the specs, both for hard drives and their mobo controllers, from the very beginning. ALL SATA systems support 48-bit LBA.
Yours is a common situation. With SATA devices you have 48-bit LBA support at the two hardware levels, but not in your older OS, Win XP original. You have three choices. The simplest is to install XP to a large hard drive, recognizing that it will NOT create a boot Partition larger than 128 GB (can be smaller if you choose it). Then you update your Win XP to SP3. With that in place you can use it to create some new Partitions in the Unallocated Space of the hard drive, which will serve as separate drives with their own name(s). Or indeed, you can install to a smaller boot drive, upgrade, and then use large (over 128 GB) drives only as data drives. This way you can not BOOT from a large hard drive, but you can use them after booting from a smaller one.
Apache_lives' last sentence is misleading. Using SATA in "native IDE mode" does NOT solve your size issue. Installing old XP, updating it, and then expanding the original C: drive Partition is a possible route, but NOT within Windows alone. Windows can expand Partitions, but for its own safety it refuses to to that for the BOOT Partition. It can be done with third-party software tools like Partition Magic and with a few free shareware tools, if you want to go that route.
To escape all this and have full 48-bit LBA support from the outset, you can do it in two ways. The simplest of these is to buy a new version of Win XP with at least SP1 included, preferably even newer. Only problem is, it will cost you a bit of money. But with that you CAN install to a large hard drive as your boot drive, making your Primary Partition as big as you and the drive will allow.
The last option is Slipstreaming. This is a perfectly legal and free way to update your existing licensed XP (original) Install disk to a new one that has all the Service Packs included. It will take you some time and work, but you will end up with a new CD-ROM disk burned yourself which is your Win XP Install disk for all future use. Then you use it to install XP, just as if you had purchased a new version.
Now, the issue of how to use SATA drives at all is separate from the size issue. And even if you get a SATA drive working with drivers, etc, you still cannot use the large ones without 48-bit LBA installed as above.
All hard drives need a software driver added into the OS (Windows), just like any other device. But for a long time, Windows has arrived with the IDE device drivers installed already - just no other hard drive drivers. Back at least in early 1990's it became clear users might want to use other hard drive systems (like SCSI or RAID) as their boot devices, so the Windows Install system was modified. Early in the process a screen pops up to ask whether you want to add outside drivers to Windows, and you do that by pushing the F6 key, then following instructions. The problem, though, is that it only allows installing those drivers from a FLOPPY disk. If you do this, the driver and its abilities are added into Windows right then. They become a permanent part of the Windows you install, and they are available right away for the Install process itself.
When SATA devices first entered the market this existing system was used. Thereafter, however, mobo makers started to eliminate floppy drive ports in response to decreasing popularity of those devices among users. That could have been a major problem, except that many offered a good solution instead. Within the mobo BIOS they offer three options for how a SATA port is used. One is RAID controlled within the mobo's own chipset, and this still requires installation of outside drivers, as well as use of the RAID utilities to create and manage the array. A second choice is "native SATA" operation, with or without AHCI capabilities. This also requires driver addition. The novel third choice was to have the mobo take over the low-level control of the port to make it appear to the outside world (that is, to Windows etc.) as if it were simply another IDE port which Windows already knows how to use! This is called IDE Emulation - and no, it is not "native IDE mode". With this mode you don't get the advantages of AHCI, which are unimportant to many users anyway, but you do NOT need to add special drivers! So you get to use the SATA device(s) with no trouble and can install Windows in any version. As I said, though, you still cannot use disks over 128 GB unless you upgrade the OS to support 48-bit LBA.
The ability to use SATA, a new device standard, needs to be resolved in the OS. In the case of Win XP which was already being deployed as SATA emerged, no device drivers were ever built into Windows, but the SATA makers ensured there was a good way to use their devices, anyway. Since then VISTA and Win7 have included native SATA device drivers as part of the basic ability, just as IDE was included, and no extra driver is needed to install those operating systems using native SATA mode (note IDE Emulation is not needed there). I'm not sure if native AHCI mode drivers also are built in, too.
Large hard drive sizes are not a SATA issue - it is an issue for all large drives. Use of a new type of hardware device called SATA requires integration of hardware and OS software which has been done after the new devices were brought to market. For those caught in the interim situation with an older OS, the tools to adapt are readily available and relatively simple, even if you choose not to spend money to update to a new OS.