At the application level, you can allocate as much memory as you want and then write to it all. You are not guaranteed not to die of OOM while doing this, but at least you will know right away that you will have enough memory in the long run.
The point of overcomitting is that it reduces the possibility of OOM errors. I think people are just offended that the kernel is killing their process. With overcommits turned off, the OOM would have happened sooner, and I doubt most applications would have handled it any better than the kernel did. If you think the kernel is wrong, or if you don't like this behavior, you can both customize the OOM killer and turn off overcommitting.
Also, overcommits are by no means specific to Linux. FreeBSD, OS X, HP/UX and so on all have it. I _think_ Solaris is the exception here. But if you want the Solaris behavior, you can have it under Linux too.