There are many different types of software in the market, and different types of contracts apply to each type of software. The main types of software are:
1. Commercial off-the-shelf ("shrink wrapped") software. This refers to software that is sold "out of a box", where the software vendor sells the same software to hundreds and thousands of people. This type of software is sold with a standard software license, software warranty, and possibly software maintenance services. In most cases, the software license contract is "automatic" in that you don't need to sign a piece of paper and send it back to the vendor. Rather you indicate your acceptance of the license (and hence enter into a contract with the vendor allowing you to use the software with certain rights), by installing and using the software. That is why when such software is being installed, the installer program will show you a license agreement and ask you to "click to accept it" before the installation is carried out.
The software maintenance for such programs is sometimes provided free, or as an annual subscription that you need to pay for. Software maintenance for this type of software is usually delivered automatically. For example, a software vendor may allow the program to automatically check back with the vendor for updates. This allows software maintenance to be carried out easily without the need for software users to have technical expertise.
2. Open Source off-the-shelf ("shrink wrapped") software. This refers to software that is sold out of a box, but unlike commercial software, the software is provided under an open source license. Unlike commercial software licenses, open source licenses come with a different set of rights and restrictions. For example, many open source licenses give you the right to modify the software code. At the same time, they may impose the condition that the software cannot be used as part of a larger piece of software/solution unless the larger solution also comes under open source licensing terms.
It is a common misconception the open source software is free. In many cases, open source software can actually be sold, and there is no restriction in the software license preventing vendors from charging for it. Open source software is free in the sense that the licenses try to allow people to modify the software for their own use. It gives them the freedom to view the source code and adapt the program for their circumstances. However, this freedom sometimes comes with the restriction that you must make all your changes available to others under a similar license.
3. Custom developed software and Turnkey solutions. This refers to software that is specially developed, for example by a systems integrator, for a customer. Such software may be developed as part of a turnkey solution, or as a result of a software development contract. In many cases, this type of software is provided to the buyer under a specially negotiated set of terms. This one-time unique contract is meant to satisfy the unique needs of the buyer, and to allow the buyer to continue using the software in the event the vendor goes out of business. For example, the license may state that ownership of the code is handed over to the buyer (not common in commercial licenses, because the vendor needs to sell the software to other customers to make money), or that the ownership is only handed over in the event the vendor goes out of business or is sold to another company. The license agreement may also call for the source code to be kept in escrow, and released to the buyer (so that the buyer can perform software maintenance) in the event that the vendor goes out of business.
Such software may also use individual software components which are either commercial or open source in nature, and this can affect the way they are licensed to the customer.