How can I adjust Drupal links on shared hosting so that they don't point at the root?
You have a variable ($base_url) for this in settings.php, in /sites/default usually.

Set $base_url to match the address to your Drupal site:

$base_url = "http://www.example.com/~stef";


Hope that helps!

PS: There is also a url setting in .htaccess you may want to look at if the above does not work.