I installed and have been maintaining a WeBWorK server at Towson. Similar to many regional state schools, Towson has a centralized office that supports technology and has the final word on all internet-facing servers housed by the university. In this context, “installed” means that they provide a computer in the (properly secured) data center and I am responsible for installing, updating, and trouble-shooting WeBWorK software.
The software is free both for the university and for the students, the open-source code was written, and is updated, by educated enthusiasts, there is a huge (and growing) databank of homework problems. The system allows not just multiple-choice answers, but is able to correctly grade free-form mathematical input that uses essentially the same syntax as graphing calculators. The students receive immediate feedback on their work. This means that if the answer is incorrect, the students have to keep working on the problem. The system automatically randomizes the numbers (or other elements) of problems. This means that different students get similar, but not identical problems. This encourages meaningful exchanges between the students.
I do assign, and grade, written homework in addition to web-based exercises. The written homework problems are typically more conceptual and require more writing. Separating the routine exercises as web-homework allows me to focus feedback more on those problems.
Let me mention some technical details. In my experience, installation manuals were informative (there are now fully built images with instructions on how to make them more secure). The system needs minimal up-keep, and is very “light”. (So light, in fact, that I was able to run it on a virtual machine inside an old Dell box discarded by the Computer Science Department.) Most problems that I had trace to internal network and server administration issues.