I modified the agent code for Linux to add a "vm.memory.size[available]" key, which is (free + cache + buffer). This is the amount of memory that will be available if processes need it. Alternatively, a similar calculation of (used - cache - buffer) would yield the amount of memory actually being used by the OS and processes to run, which is what I graph in MRTG. I find both measures to be more generally useful than the standard "free" and "used" values, and I can't define an item that calculates either one because the field isn't long enough.
The patch has had minimal testing, but Zabbix appears to return the correct data on my test system (RHEL4).
Almost forgot, the patch is against 1.1beta7.