The reasons HARDWARE modems are still so expensive is because they have the CoDec chips.
Many of the cheapy $10-$20 dollar deals are WinModems. Their Coding/Decoding is handled all by the CPU through software.
For most users with powerful PCs, this is negligable. But, for those with BSD/Linux/UNIX systems, the WinModems are worthless.