When asking for customised software, businesses generally know what they want but can't actually visualise exactly what the finished solution would look like.
Because of this, things need to be changed along the way as the customer is confronted with choices they never knew existed, including field and tabbing order and font sizes, but often more complicated.
And then there is the situation where seeing one thing completed prompts other ideas and additions from the customer.
Taking what was once a simple request and expanding it way beyond the original design (commonly refered to as Scope Creep).
This obviously increases the time and cost needed to make these extra unforseen changes and additions.
For this reason any developer worth their salt will not give a fixed quote on what they do, it must be done at an hourly rate or Time and Materials.