Fully compatible, yes, but watch out for size. Most machines of that era included what is called "LBA Support" which would let you use hard drives up to about 137 GB (HDD maker's measure), aka 128 GB by Microsoft's way of counting. After about 2000, newer machines updated that to have "48-bit LBA support" that allows VERY much larger drives. But unless you have that (and it MUST specify the 48-bit part, not just "LBA"), don't try to buy / install a drive larger than that.
There is one small exception to that. IF you buy a Seagate HDD, they will provide (free download from their website) a set of utilities called Seatools for DOS. You download the right file and run it to create either a Floppy Disk or a CD-ROM that is bootable. You boot from it and it loads a small DOS and runs the utility package. It ONLY works for Seagate disks, however. One of the utilities allows you to the set some info in the controller board of the HDD that limits its effective size. You have to know what the correct number is for the max sector count that corresponds to 137 GB so you can enter that. It is 2^28, or 268,435,456 sectors (at 512 bytes per sector, that comes to 137,438,953,472 bytes, or 137 GB by Seagates' way of counting). (There's also a related utility to undo this and return the drive to its full real capacity.)
For example, in exactly your situation, I recently bought a new IDE Seagate drive of 160 GB capacity for a mobo that does not have 48-bit LBA. I used Seatools to set it to behave as if it has only 137 GB (small loss, from my perspective). Then I Partitioned and Formatted it then cloned stuff from my old boot drive to it.The machine now has a new 128 GB C: drive with loads of empty space.