Although I doubt an external module will be a cheaper overall solution, here's a couple of suggestions:
1. Have a look at Tibbo modules. They have a large variety, and I've used several with mostly good results. Some have only single socket capability so depending on your app you may want to stay away from them as the work-around for multiple connections becomes quite involved -- even though, the connections are not simultaneous.
2. Have a look at Wiznet (e.g., WZ5100) chips. They are much more affordable (and I would even say, much more flexible) than Tibbo modules but with more work on your end.
Hope this helps.