Tying to keep it as non-technical as possible...
Essentially, the operating system takes all the physical ram in the computer and a chunk of disk space and presents it as one large memory space - this is virtual memory.
Windows systems use a special file on disk called pagefile.sys as it's chunk of disk. Linux, generally, is configured to use a separate disk partition or even a different disk which can have some serious benefits.
When Windows complains it's out of virtual memory it's actually complaining that the page file is full. This doesn't, however, mean that you should just make the page file larger (it is a user configurable setting) as it normally indicates a process with a memory leak rather than the page file being too small.
An interesting aspect of this system is the fact that disk access is at least 1,000,000 times slower than memory access so it would seem that if processes were running in the disk part of the virtual memory they would be very slow. The reason you don't normally see a slow down is because the operating system has some very clever algorithms that it uses to determine what parts of an application (called the working set) need to be in real memory and what parts can safely be shuffled off to disk. If your working set is larger than your physical ram you get disk thrashing as the operating system swaps bits in and out of physical ram while trying to make progress. Thrashing used to be a real problem on early memory constrained computers but it doesn't happen much now.