How do I change the structure of node's $content variable?
Creating a template (node-MyContentType.tpl.php) for your content type is certainly helpful to manipulate the display of the entire node, but it sounds like what you're looking for is how to modify individual fields, and these are rendered in a different template.

Drupal uses template files and theme_xxx() functions to display elements on the site, and there is generally one template or theme function for each object (page, node, block, field, etc.). In order to override them, you use a feature called Template Suggestions. These are an alternate template (.tpl.php) file that you have created to override the base or original template file. Read more about these for Drupal 6 or Drupal 7.

The best way to create your own version of a template file is find the original one, copy it into your theme folder (don't modify the original!), and rename it using the "template suggestions" convention mentioned in the links above. In Drupal 6, you have to have both the base template (e.g. node.tpl.php) as well as the renamed one (e.g. node-mytype.tpl.php). In Drupal 7, having the base template in the same folder is not necessary.

In Drupal 6, fields are a part of the CCK module. Here's information on overriding CCK Field templates. The original template content-field.tpl.php is located in the CCK module under cck/theme.

In Drupal 7, fields are a part of the Drupal core code. The original template field.tpl.php is located in modules/field/theme.