And modern software that does the same. Cisco AnyConnect VPN thing, for example. You can feed it a command file, but that doesn’t give you any error handling or logic to handle dynamic responses. Expect to the rescue!
Also great for automated tests of interactive functionality in your own projects.