For example a desktop app may ask for 'user_id:'
where as the web app would ask for 'Your email address:'.
I'm sorry but I don't quite agree with the above. In the desktop apps that I have written if I wanted their email address I would ask for it.
As to documentation in place. I can see your view point in one respect as we typically allow for instructions above each form (as an example) that explain the processes or requirements of the following immediate action. However, that does not really help to reinforce the process as a whole nor does it really ensure the user is aware of what is happening (which is in reference to your last point).
All that it does is ensure that *at that point* in the application the user *is somehow aware* of the requirements of that *particular form*. Of course whether its the right form for what they want to do is down to the application and the user ;).
I guess ultimately it boils down to how much confidence you have in your user base and how complex the application is (which is in itself a moving target with shifting user requirements).
Thnx - SP