the contract between user and "maker" should be requirements. if a machine does not fulfill its requirements, it can be the maker's responsibility, for example a flight instrument that failed to report correct information.
but if you choose to use a piece of software that says "we actually guarantee nothing", which is the vast majority of it, then it's definitely the user's responsibility for choosing to use such a tool.