There IS a limit that is (somewhat) imposed by the CPU. P1, PII, PIII, and PIV is a 32-bit CPU, and thus it can't handle number larger than 32-bit or 4-bytes, 2³² = 4 294 967 296 is the largest number a 32-bit CPU can handle.
A harddisk is structured into sectors and each sectors is uniquely numbered (called addressed) and this numbers must fit into the 32-bit number. A sector is usually 512 bytes and that means the largest harddisk a 32-bit computer can handle is... 2 TerraBytes = 2 199 023 255 552 byte = 2 199 GiB.
Well, that's a large number, but don't take the number as it is, the filesystem also plays a role. The NTFS filesystem can utilize the whole 2TB (NTFS' limit is actually way beyond 2TB, but the CPU can only address it with 32-bit numbers thus 2TB), with FAT32 filesystem, the filesystem can actually scale up to 2TB, but the filesystem _driver_ in some Windows version somehow only support FAT32 up to 32GB. In FAT16 and FAT 12 the limit is 4 GB and 16 MB respectively (yes, that's MEGAbyte not Gigabyte).
In short, if you use a modern filesystem and a modern OS (NTFS and Windows NT-family, that includes Windows XP) you can be sure that you'll never hit the 2 TB limit cause it's quite high... well, at least for now... cause there are some really large harddisk that almost hit the 2 TB limits.