In ascending order from the BSD to the GPL to the NPL, the license agreements are more specific and restrictive. The BSD says nothing about the interface of proprietary and open source code and almost nothing about the distribution of modifications and source code; the NPL requires that source code accompany any distribution of open source software, object code should also be distributed and lays out the method for preserving rights in proprietary software that interfaces with open source code.
In response to the second part of the question, to the extent that custom applications use open source code pursuant to the GPL, any distribution of the applications must be accompanied by the source code, notations about modifications, attribution to the creators of the original code and any modifications, and proper notification of proprietary rights.
Finally, with regard to your question about legacy applications, I am not certain of the question. Most legacy applications are proprietary, meaning that licenses to use the software did not (and do not) necessarily permit re-distribution and almost never permit source code modification. However, if the licensor of proprietary legacy software distributes the software under the GPL, it does so preserving the proprietary protection while distributing the source code and permitting modification in accordance with the terms of the GPL. In that instance, unless there are identifiable sections of the code that are not subject to the GPL, the legacy application becomes open source code and modifications of the legacy source code will be treated as open source.
This was first published in June 2003