That's the nature of how companies label storage capacities and we somehow accept it.
Most of the lost space is due to rounding. A GB is actually 1,073,741,824 bytes, because there's about 1024 bits per KB. Drive manufacturers decided it is 'easier' to use 1,000,000,000 bytes to represent a GB. So for every GB of data, you lose around 75MB.
In your case, 320(GB) x 75MB (Data lost because of rounding / GB) = 24GB, which works out to be pretty close to the amount of data missing from your 320GB drive. There's also some file system overhead too, much like a library needs an index of its books, which counts against the total available storage capacity.
You shouldn't be missing 50GB from your 250GB drive though. If there's nothing important on it, you may want to consider repartitioning (Important!) and reformatting the drive. If you're using XP and it is a spare drive, you can Start > Run > diskmgmt.msc