They were still good windowses for their time, especially when you compare them to DOS and Mac OS 9 which would have been the alternatives.
For a fair comparison with professional OSes with full memory protection like UNIX you’d have to look at Windows NT, but there the preimise is true as well (as far as I can tell by googling, I only ever used 2000 Pro): 3.1 was bad, 3.5(1) good, 4.0 bad, 2000 good, 2003 meh.
They were still good windowses for their time, especially when you compare them to DOS and Mac OS 9 which would have been the alternatives. For a fair comparison with professional OSes with full memory protection like UNIX you’d have to look at Windows NT, but there the preimise is true as well (as far as I can tell by googling, I only ever used 2000 Pro): 3.1 was bad, 3.5(1) good, 4.0 bad, 2000 good, 2003 meh.
There was also OS/2. But yes, for the time they were running decently on “cheap” hardware.