i had real problems with that too.
The only way i could get around it in the end was to create a new "virtual web" from whichever sub directory i wanted to add stuff to. Then on that new one I set the permissions to allow anything (read, write, execute etc), and referenced to that directory from my main page.
So for example, I had a site at http://localhost/intranet, and i wanted a photos directory into which people could upload photos - http://localhost/intranet/photos - but I couldnt get that to work. So i created a new virtual web for photos and linked to that site when i was adding photos: http://localhost/photos. That let me upload fine. Then to view them, i could go to the standard directory og http://localhost/intranet/photos (since they were in fact the same directory, just had different permissions depending on how you got to it).
Does that make sense? I hope so - and i hope it works for you too. But if it doesnt then give a holler back since I tried loads of stuff before I actually got it to work!