If you use plain ol' Vim, you can use it as part of a script - let the user put something in Vim, then when they quit, do something with the result. This is less easy to do if you are using GVim or MacVim, since they spawn off in a different environment - the GUI rather than the command line. 
If you use TextMate, you learn that invoking it with mate -w solves this - it waits for you to close the file before the shell process finishes. But you may not know that the same can be done with GVim and MacVim - gvim -f and mvim -f respectively. The -f stands for “foreground”. You can also use --nofork instead. And if you want to learn about other command line arguments you can use when invoking GVim or MacVim, just run gvim -h or mvim -h (or --help). To learn more about MacVim, you should also run :help gui-macvim (and type :help gui-, then hit Ctrl-D to see all the other help files about the various GUI versions of Vim. 
Why might this be useful? Well, if you use a version control system like Git, then you might want to use mvim -f as your commit editor just like the TextMate kids use mate for the same purpose. You might also have written yourself a handy little blog editor in Ruby, but want to be able to, I dunno, use your mouse (not particularly rational, but we’ll indulge the fantasy that pointing devices don’t give you horrible joint problems - heh) or, perhaps, use the OS native copy-paste functionality burnt into your muscle memory. Or perhaps you just like having a pretty menu bar. Whatever your reason, you can have a lot of fun if you -f the night away! 
