^
Lets say you have Neoffice open. You are typing stuff into it. That doesnt require as much RAM as working with pictures and videos while creating a presentation.
Similarly, when you are using iTunes tp play music, it barely hogs the memory. But that changes when you are playing large videos and downloading a TV Show from the store.
Also, while you can have many applications open, you will generally be working with only one at a given time. The foremost application with which you are working gets a larger chunk of memory for the time you are using it, reducing the amount of memory for background processes. There's a continous allocation/re-allocation of memory as well as processor power going on.
----------
The memory requirements are there to tell us the minimum amount of RAM necessary for the program to behave as it ought to(as the developer wanted to) while using any/all of the functions of the program.
You dont use everything that a software offers at the same time, do you? Actually most people dont, thats why iTunes wont use up 512 MB RAM all the time.
----------
What if you have only 512 MB of RAM? What if you have 20 tabs distributed over 3 windows of Safari, Mail application checking your emails from 3 inboxes, iTunes converting a video for your iPod, iPhoto updating library with latest photos from your camera, etc etc..
What if your RAM is used upto the limit that your computer cant take anything more?
And then suddenly you decide to check out that video your friend sent to you. What does the system do now? Refuse to open the application? Shut down itself? Catch fire?
No, none of that happens. The program will launch. How? Here's where Virtual Memory comes into play.
As one can have only so much of RAM, there had to be workarounds. When you have a dozen apps running, some of them are not doing any important task or maybe any task at all. So portions of the program are shifted from the Real Memory to Virtual Memory. This creates room for the important applications that you need to run. Virtual memory is just an allocated space on hard disk. Its slow, almost useless for day to day tasks that RAM is used for.
----------
Basically, when the developer mentions RAM requirements, its not for that single application but for the computer in which that application is meant to run.
Its all jumbled but hope you get the point.