The best way to improve the status quo on a case-by-case basis is to introduce competition, say by developing a better product, marketing it well, and basically out-predating the theretofore market predators. The marketing is easy if you can get enough momentum behind it:
“FooCorp wants to sell you these materials for $absurd. We made these better alternative materials. You can print the basic set yourself for free, or order any of our wide, high-quality selection, starting from $reasonable.”
I don’t think there is a general solution to the underlying cause, though.