How to mark a image attachment as background image?

You could use the plugin “Custom Field Template” to replace standard custom fields with a much easier to use interface, that also allows you to use checkboxes, selects, textareas with tinymce, and file uploads among others.
Then the client would just upload the image through that field and you use

<?php
    $bg = wp_get_attachment_image_src(get_post_meta($post->ID, 'custom_field_name', true),'original');
?>

to get the file information. that will return an array, and the image url will be the 0 value. You then do:

<?php
if(isset($bg) && $bg != '')) {
   echo '<div style="background:url('.$bg[0];.');">CONTENT</div>';
}
?>