I've got a 1st Generation iPod with iOS 3.1, and I'm frustrated because I most apps don't run on such an old iOS, but I can't put a new iOS on. Is there eny way to get old versions of all those apps?
I'm afraid not. You can keep running old versions of apps, but you can not download them. For example, Check the Weather was recently updated to require iOS 6. If you have an iOS 5 device you can no longer purchase it on the device, but I can keep running the version I have as long as I don't delete it.
I understand and share your frustration.
It's worth pointing out that whilst you can't get old apps for iOS3.x Apple do now offer the option to download the last compatible version of an app on devices running ios4.2.1+ and later. There are some catches in that you need to already have installed the app under your user ID but these are discussed in the Reddit comments and explained in this article - basically you can install the app on another device and then you'll get the option to download the older compatible version on the old device.
FYI each app file is specific to a particular user ID so you can't just copy an app from someone/where else, though if you've got a copy of an older version of the app you can use that.