1. how do you configure far future expires on all css, images, and js? - say 20 years forward?
From the policy expand the static node
Select Components - images and includes (css,js) are listed here
Select Acceleration Rules from the navigation bar drop down (it should read Matching Rules when you open the policy)
Click Lifetime - here you can change both the WebAccelerator cache lifetime and the client cache lifetime. For most policies the default WebAccelerator lifetime is 4 hours and the client cache lifetime is 2 days you can increase these to 365 days.
While many sites do set expirations beyond 1 year that is not RFC compliant and is not currently allowed by WebAccelerator.
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
"To mark a response as "never expires," an origin server sends an Expires date approximately one year from the time the response is sent. HTTP/1.1 servers SHOULD NOT send Expires dates more than one year in the future. "
2. how do you stop user details being cached in competition entry forms etc
User credentials and form data isn't cached by WebAccelerator.
3. does devcentral use WA and is there a template / recommended WA config for use with Dotnetnuke ?
Yes DevCentral does use WA check out the RealIT video series on how it was deployed. I will defer to somebody from the DevCentral team to discuss any recommended configurations.