I don't have an answer for everything, but will give this a shot...I work for a utility setting up a GIS system for land acquisition, maintenance and engineering. We have a whole system of checks and balances where the behind-the-scenes IT server information is not something that I maintain, but can give you a glimpse of what we've seen with our production server setup.
•What kind of scripts/tools do you use to deploy new maps,services,data to your production server,
•do you deploy them manually? In ArcCatalog or the web manager?
FME (safe.com) has been a lifesaver for creating nightly dumps to both geodatabases and kml files (we have editors and viewers...Google Earth has really took off as a viewer, since it involves very little training) I use this to deploy any changes in data from our SAP database to spatial data overnight. Batch the FME scripts to run overnight. Next morning, users log in and see the latest, greatest(?) information in front of them without doing anything other than opening ArcMap or Google Earth.
I don't really have an answer for deploying new maps or web services. Currently, we use a Citrix environment, so anytime there is a mass change that is needed to be made to the mxd, I change the default doc that they open through Citrix.
•do you copy and paste the cfg files, do you change the settings of those files manually or with scripts?
•Do you keep stuff in version control? What do you keep there?
We keep a separate SDE database with versions. This is client-edited data only. No landbase data or other data that we receive from outside sources or from our SAP database is editable by end users. An administrator group of myself and a couple of others can add (or delete) the non-SDE data.
•How do you manage different settings between servers (min and max number of SOC's per service for example)
•What kind of best practices in general do you recommend. Are there good docs to read about it?
I set up scripts to run to the test server. Once those are tested, deemed good enough to be sent to production, I copy that data (SQL script and FME script) over to a folder I have reserved for production, change the destination and set up my batch file. Once this is set up to run nightly, it's a pretty much automated process (set up email alerts for failures, just in case). This site has been a pretty good resource for me (the programming Stack Exchange as well) as have some basic Google searches when I was working on getting scripts set up.
We learned the hard way that virtual servers are not best practices with ESRI, neither are decent sized file shares. Keep in contact with your ESRI rep (I'm assuming you use ESRI here) and keep them in the loop of any outstanding tickets you have with their helpdesk. We had a couple of issues that it took weeks of circling back and forth with tier 1 when our rep was able to escalate it and get a response immediately.
Hopefully that helps, at least somewhat. :)