It's likely that the tgftp.nws.noaa.gov site has started enforcing the requirement to have a User-agent: defined with the http request.
Try using <div id="main-copy">
<h1><?php langtrans('Great Lakes Recreational Beach Forecast'); ?></h1>
<pre>
<?php
$STRopts = array(
'http'=>array(
'method'=>"GET",
'protocol_version' => 1.1,
'header'=>"Cache-Control: no-cache, must-revalidate\r\n" .
"Cache-control: max-age=0\r\n" .
"Connection: close\r\n" .
"User-agent: Mozilla/5.0 (raw forecast)\r\n" .
"Accept: text/html,text/plain\r\n"
),
'https'=>array(
'method'=>"GET",
'protocol_version' => 1.1,
'header'=>"Cache-Control: no-cache, must-revalidate\r\n" .
"Cache-control: max-age=0\r\n" .
"Connection: close\r\n" .
"User-agent: Mozilla/5.0 (raw forecast)\r\n" .
"Accept: text/html,text/plain\r\n"
)
);
$STRcontext = stream_context_create($STRopts);
$a = file_get_contents ("http://tgftp.nws.noaa.gov/data/raw/fz/fzus53.kapx.srf.apx.txt",false,$STRcontext);
echo ($a);
?>
</pre>
</div><!-- end main-copy -->