Vim can be built to run in GUI environments and text-based terminals/consoles. It is fairly widely ported (i.e. it can be compiled and run on many platforms).
The vim.org website provides links to download both the source code and pre-compiled versions that support text and/or GUI modes on many of the supported platforms.
Vim can be used to automate certain tasks. Since it is primarily a text editor, tasks that consist of mostly making changes to text files are the most natural fit. It has its own scripting language.
Vim can also embed one or more other general purpose languages (Lua, Perl, Python, Ruby, and Tcl) for use in “scripting” Vim. I suppose you could accomplish just about any automation task from inside Vim by using one of these languages as a bridge to a more general purpose automation system (COM/WMI on Windows, AppleScript on Mac OS X, shells and command-line tools on Unix-ish systems), but such use is probably not very common.
Mac OS X comes with a text-based version of Vim (/usr/bin/vim) that can be used in Terminal windows.
There are also two up-to-date GUI versions available: the Cocoa-based MacVim on code.google.com and the Carbon-based MacOSXVim on sourceforge.net.
The older macvim.org site is apparently abandoned; it only has old versions (circa 2007).
In general, Vim works the same way on each platform it supports. However, Vim has many optional features that can only be enabled when it is compiled, so exact compatibility between two “builds” (e.g. for two different platforms) will depend on the features that were enabled for each build.