Install["name"] starts a MathLink-compatible external program and installs Mathematica definitions to call functions in it.
The Mathematica definitions set up by Install are typically specified in the MathLink template file used to create the source code for the external program.
Install["prog"] will launch the specified program, then connect to it via MathLink.
If prog is a directory, Install["prog"] will try to execute prog/$SystemID/prog.
Install["name`"] searches all directories on $Path for a file or directory called name.exe.
Install[link] will take an existing LinkObject and set up what is needed to call functions in the program corresponding to that LinkObject.
Install returns a LinkObject representing the MathLink connection it is using.
LinkPatterns[link] gives a list of the patterns defined when the specified link was set up.
You can remove these definitions, and terminate the execution of the external program by calling Uninstall[link].
Install[LinkConnect["port"]] will install an external program that has created a link on the specified port. You can use this to call external programs that have been started in a debugger or on a remote computer system.
If you call Install["command"] multiple times with the same command, the later calls will overwrite definitions set up by earlier ones, unless the definitions depend on the values of global variables which have changed.
Install sets up definitions which send CallPacket objects to the external program whenever functions in it are called, and waits for results to be returned in ReturnPacket objects.
The external program can send EvaluatePacket objects back to Mathematica to request evaluations while the program is running.
See The Mathematica Book: Section 1.11.11 and Section 2.12.2.
See also: Get, Run, RunThrough, LinkLaunch, Uninstall, $CurrentLink.