Why pay for hosting? Couldn't you get a free hosting account somewhere, point your domain to it, and then use a simple redirect for all traffic?
I assume this is for a small website you built at home because it was convenient. Maybe a dev environment or running some scripts you want access to from anywhere. If you actually want to run a production environment from home AND your provider blocks port 80, you're crazy.
One question would be - do you want to domain name to show up when browsing the site? If not, simple redirects from domain.com to IP.ADDR.AT.HOME would work just fine (see the following link for all kinds of ways to redirect: http://www.yolinux.com/TUTORIALS/ApacheRedirect.html)
If you want your domain name to show up, here's some hacking I would do:
The big problem I see is because you're trying to redirect everything from one server to another, you're gonna have to convert POST arguments to GET (since posting to a 3rd party server which only redirects means your post data will get lost).
If your hosting provider allows some scripting language, you could use PHP or Perl to redirect all requests:
<?php
$args = $_GET;
$postArgs = $_POST;
$paramString = (empty($args) ? '' : '?');
if (empty($args)) $paramString = (empty($postArgs) ? '' : '?');
$first = true;
foreach ($args AS $key => $value) {
$paramString .= (!$first ? '&' : '') . $key . '=' . $value;
$first = false;
}
foreach ($postArgs AS $key => $value) {
$paramString .= (!$first ? '&' : '') . $key . '=' . $value;
$first = false;
}
$uri = $_SERVER['REQUEST_URI'];
header("Location: http://IP.ADDR.AT.HOME:8080$uri$paramString");
?>
Really depends on what you want to do.