Linux works around BIOS limitations such as the LBA48 problem and I'd expect Windows to do the same without any BIOS updates (but a BIOS update isn't a bad idea anyway). if you have a Linux CD handy try booting off that, then open a terminal and type 'dmesg' and scroll up to see the hdd info. it will tell you how many physical bytes are on your disk regardless of partitioning and filesystems.
Alternatively plug the model number into google and see what you get.
edit: Oops I gave Windows too much credit, it won't work-around BIOSes with no LBA48 support.
Your bios sees 400GB so why are you so sure windows isn't the problem?! Look here This article describes the Microsoft Windows XP Service Pack 1 (SP1) 48-bit Logical Block Addressing (LBA) support for ATA Packet Interface (ATAPI) disk drives that can increase the capacity of your hard disk to more than the current 137 gigabyte (GB) limit.