I use 1&1 with no problems at all.
First thing make sure 1&1 has finished setting you up.
Make sure you have your External Domain set up to point to the site 1&1 makes for you. IE s10003.onlinehome.us points to http://www.crystalandjeff.com/
put everything from your public_html directory into the root of your ftp account, and create a directory called /geeklog (or something) for your config.php file and other sytems files.
put a file called .htaccess in that directory with the line:
Deny from all
in it and nothing else (not the [Quote part either). This will prevent people from pulling your configuration info.
Make sure you have created a database for geeklog from the 1and1 control panel. Get the username, password, database name, and database host that 1and1 assigns you. Put these fields in your config.php file.
set your _CONF['virtual'] (I may have made up this line so if its not there by default add it) virtual directory to your virtual path (find this out by going to the install.php file and seeing what it says the current directory is) on 1and1 this will be someething line '/homepages/xx/a111111111/htdocs'
your _CONF['path'] to _CONF['virtual'] . '/geeklog';
_CONF['path_html'] = _CONF['virtual'] . '/';
finally edit your lib-common.php (in your root directory) and set the require_once path... to
require_once( '/homepages/xx/x1111111111/htdocs/geeklog/config.php' );
be sure to edit the xx and x111111111 to your path as was dispalyed from the install.php file.