Community Chosen Answer
Are you looking for the technical process or a standards implementation? A technical process would depend on a great many things, starting with the number of systems you support, their locations, if you have a management system, if you have an automated deployment process, etc. For setting standards, there's a few ways to determine naming conventions, commonly determined if you have a management system or not.
If you have SCCM, Altiris or other management tools, the name doesn't really matter (as much as it does with an environment without a mgt. tool) so you can use the serial number or a MAC address. Some will add model number or geographical location codes, but the more management & automation you have, the less importance you'll find in the name. If you are a small environment and commonly find yourself remote controlling a system to troubleshoot, the more important it may be to have an easy-to-remember name. Keep in mind; using information to name a computer that cannot be pulled as a variable creates a more complex process to automate the deployment process.
For example, if you name computers based on Department Name followed by a users phone extension (for example "HR-0348"), you'll have to manually name each computer - or develop an extremely complex process (which no one in their right mind would attempt!). But, if you go with a simple asset tag or serial number that's pulled from a WMI query, the whole process is easily automated.
Gone are the days where a computer name has to be 'legible' to a human. I've not seen a client environment in the last decade where someone said; "We need..." when discussing a naming convention. It's always been; "It'd be nice if we could..."