uhm. web2py handles usual encoded forms in multipart/form-data and application/x-www-form-urlencoded without problems. Additionally recent releases parse automatically into request.vars all requests that POST a json body if they're handled with content-type : application/json.
Inspect your POSTs with something like firebug to spot the issue you're facing.
@david: Posting YAML isn't quite a standard, although preferred to CSV, that is the most horrible way to pass around values for forms. CSV is good for passing around table data, but is not supported by any browser "natively" (i.e. you must build your own CSV serialization)...YAML has the exact same issue, but CSV has a major limit... How do you pass two values with the same name as {id : [1, 2] } with CSV :-D ?