Small companies with small budgets may not have have the money to invest in expensive software licenses that they may need for a given development project. This is even more so if the project was a loss-leader to drum up more business and the price of the development product cannot be renegotiated without potentially harming relationships, when it is discovered later that some proprietary expensive software license is needed for a very small yet crucial part of the application.
I have dealt with this in the past by cleverly using trial versions of software in potentially unethical ways just trying to delay or prevent purchasing the license.
What creative ways do smart software engineers work around this problem when the money to invest would be hard to acquire without breaking laws or stealing?
UPDATE: To give some context of a situation where free or open source isn't available, you have a signature pad peripheral device that comes with an integration plugin to Adobe Acrobat Professional. To use this device properly a PDF needs to be created with Acrobat and its accompanying plugin. The trial works fine for creating the PDF but what happens if the customer wants to modify the PDF a year from now? You basically just punted that problem down the road.