I've been using VirtualBox for some time now and always end up making a new "virtual" hard drive when making a new machine. I only just wondered -- what exactly am I making? If I set the size to 8GB, will it actually take 8GB of space on my physical disk? How are these like real hard drives?
Basically there's part of the file that says 'this file can be this big' and as data is filled up, it expands, up and until the maximum filesize is reached. Internally a basic image is identical to a dded hard drive - just a set of values - more advanced formats may have some form of compression, or other fancy features.
A drive is just a way to store zeros and ones, a disk image is a file that has the same charecteristics a plain old direct copy of a file has - so much so that a bit for bit copy of a hard drive can be used for forensic investigation of a physical drive.