For example, the well defined interface to the processor via its instruction set allows virtual machines to be built on top of real machines. That processor instruction set might itself be implemented on top of sub-instructions such as microcode or so-called u-ops on current x86 chips. A virtual machine is a good example of how a well-specified interface allows encapsulation -- one piece of software enveloping another in ways that might not have been anticipated by the original software's authors.
Proxies are another example of using well-defined interfaces to transparently insert functionality between existing pieces of software. The proxy may be a network proxy that receives an incoming HTTP request and processes it (checks for security threats, does load balancing, terminates SSL connections etc).
The proxy may also be one piece of software wrapping a standard piece of software to add new functionality: for example, taking a database connection factory and wrapping it with software that transparently caches connections in a connection pool. The application that used the old connection factory directly would have no idea that its now getting connections from an underlying connection pool.
Finally, language compilation is really just translating from one interface to another (or the same in the case of source-to-source translation). It is only possible to translate between the languages due to the well specified interfaces of the source and target languages.