I make my app available via market and direct link
For direct I do it PHP (just a language of choice than anything else) and send in following headers (apologies for cut & paste):
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Pragma: no-cache");
header("Content-Type: application/vnd.android.package-archive");
header('Content-Disposition: attachment; filename="'.$filename.'"');
header('Content-Transfer-Encoding: binary');
header("Content-length: $size");
header('Expires: 0');
Would suggest to use header('Content-Transfer-Encoding: binary') in particular in addition to content-type.
http://roundere.com/apk.php just in case you want to test against known good download. So that you're assured before downloading you can also find the app on Google Play @
https://play.google.com/store/apps/details?id=com.roundere and read its description etc.
@El Presidente, in addition to reason cited by @sakula, I can say that I want mine to be used on devices that Google Play does not support, un-certified android devices are one such category, sensor restriction (based on permission) on supported devices is another, yet another one is for those people that google has booted out due to some reason (read corporate tie-ups/revenue in particular). Maybe we should start a new topic in development forum to get feedback, seems to be an important issue.