Each of the services you mentioned have much better constraints (distance to travel, pages to read, components to replace, etc)
They also all suffer from estimation issues in practice. Luckily these constraints set a limit on how much a competent professional can underestimate the project.
If you're asking someone to install or update some software they've installed before on a similar system, they should be able to give you a solid estimate. This has parallels with many of the services you mentioned.
If you're asking them to research, develop and test entirely new components, which is the basis of software engineering (an engineer does more than install and update packages), you should be able to understand why this is different than delivering food.