The End User License Agreement is perhaps the greatest invention of the legal system, apart that is from the patent. Users are supposed to agree to the terms presented but most don't even read what they are agreeing to.
Ok you may say, if they don't read it then they deserve all the bad things that happen. The problem is that the EULA is often a long document and rather than being presented up front before the potential user has investigated the application it is usually presented when they have just acquired the software.
In the old days it was on a piece of paper inside the box - yes there was a time when software came in boxes. It was sometimes stuck to the outside of a CD case - yes there was a time when software came on CD. In most cases opening the package was considered to be an agreement to the terms of the EULA.
Today of course most software doesn't come in boxes or on CDs but the EULA is still there and still being presented in semi-covert ways. Usually when you download something there is a tick box to say that you have read the EULA and agree to its terms. Of course to actually read the EULA you have to download the document and read it - who can wait that long.
So the joke is that EULAs are usually something you agree to by basically buying the product. You don't get a real chance to read the terms and think about them and in most cases if you did you probably wouldn't go ahead with the deal.
If you don't believe me check the EFFs page on terms you might not like. For example, many EULAs demand that you don't publicly criticize the product (i.e. don't benchmark it and publish the results), do not reverse engineer the product (for any reason) and so on. You can even find clauses that say that you agree to any clause that might be added at any time in the future - wow this is better than a software patent!
So now consider xkcd's cartoon -
Not so unlikely is it!?
So the whole Faust thing could have been avoided with just a small adjustment to the EULA for the room.
Of course developers see the EULA as a means of protecting software and protecting developers from unreasonable users. For example it is common to add a clause that says that the software isn't guaranteed to do anything much and if it doesn't work or if it breaks something else - well that's just software.
There is an argument, and a growing movement, that says software should be no different from other products and should be guaranteed to work - unfortunately or perhaps fortunately it is difficult to define exactly what "work" means.
It would be interesting to see how software methodology would change if we were liable for the mistakes we make?
There has to be some reasonable common sense solution to all of this.
Open source fans will tell you that going open is the only sane way to do things. I can only ask that, if this is the case, why are there so many open source licenses?
Reasonableness is relative.
Dangerous Terms: A User's Guide to EULAs