Adding extra fields to Site Contact Form
Expecting forms fields to be configured like content types is an over-generalization. Content types are for content (text, image, etc.) of the website, and more specifically, in Drupal, for nodes (the main piece of content in Drupal). Using the Field and Field UI module, one can easily adds fields to content type using a Web UI. Except for some specific cases, a form is not part of the content of a website but rather a way for users to add and edit information, sometimes content and sometimes not.

To customize (i.e. alter) a form in Drupal, the usual way is to create a custom module that implements the hook_form_FORM_ID_alter hook. This way, you can add form elements to existing forms provided by other modules. To use the information for fields added to the contact form this way, you will also need to alter the sent mail using an implementation of hook_mail_alter(). The following guide walks you through both steps in Drupal 7. (Note also this comment)

A non-code solution is to use the Webform module that provides a form content type and let you add forms as content to your website. These forms are configurable through a Web UI. Various processing steps can be configured for the information submitted through these forms. One of them is email sending. Using it for a custom contact form is a common use case. Webform comes with its own concepts and extension points. While it may prove to be a easier and faster solution for a one time simple forms, it may also reveal to be over-sized and complex to customize once a certain features threshold has been reached. The cost to add extra-features to a webform can then outperform the gain of avoiding writing a custom module in the first place.