What's the 302 look like? There's a few options here: it may be Apache, or the server that's getting proxied to, or an intended behavior of the application that's handling the request on the backend server.
Option A:
Apache will send a 302 to add a trailing slash if it needs to, but since this resource matches a proxy rule, it shouldn't care.
Option B:
If the request is for just http://example.com/windows, then the request gets sent to the backend as http://192.168.56.2 - this needs to have a slash after the IP to be a valid request, so no web server could be blamed for kicking back a 302 to add one.
Option C:
Keep in mind that a redirect isn't necessarily indicative of a failure condition in a POST request - some applications are designed to do it, to prevent accidental double-posts by users. See here from details.
Do some digging in logs and see which it is.
Oh, and your configuration is vulnerable to the vulnerability described in CVE-2011-3368 - a request for http://example.com/windows@192.168.56.100/index.html, for instance, would send the request to http://192.168.56.2@192.168.56.100/index.html - 192.168.56.2 ends up being treated as the user specification, 192.168.56.100 is treated as the host, and an attacker can get to any internal host that your proxy can see.
Try this config - this should both fix trailing slash issues if option B above is the problem, as well as resolving your exposure to the vulnerability:
RewriteRule ^/windows/?(.*?)$ http://192.168.56.2/$1 [P]
POST, or query params in the URL? This config will lose query string parameters, but won't touch the contents of aPOST. – Shane Madden Nov 15 '11 at 16:20