Setting up a Drupal deployment, from a "where do I put the code" standpoint, is different than the setup within your actual Drupal install. It's based, quite a bit, on what you know with regards to technologies and your comfort level with them.
For example, when I first started using computers, I was Ok with using FTP. Software allowed me to connect and upload with ease. I didn't have to know the command line and frankly, knowing commands in a terminal scared me.
Flash forward a number of years and now I can't live with out it. It's just so fast. Using the command line and technologies like CVS and SVN is what allows an admin to download, update and maintain an installed codebased with much ease - but, this comes at the price of having to learn those technologies.
So, here's your warning! This content is very much on the geeky side. It outlines using the CVS/SVN combination which many of the top Drupal developers use. In this video, I outline my repository structure and how I deploy my Drupal code. The first half provides an intro with links to stuff you need to know about CVS and SVN, and the later walks through some of the details of how it all works.
As mentioned in the video, I reference my other video about multisites and I also provide some pointers about knowing how to do things like SVN Filtering for adding and removing files which are added/removed from code repositories.
Also, here's a great link on Drupal.org with more detailed info about CVS with Drupal . Pay special attention to the -r switch for the command!
If you have suggestions about improving my system then I'd love to hear them! - Stay Drupal Addicted!