The incident did not occur "off the coast of NYC's immediate suburbs" -- the area where this occurred was at least a two-hour drive east of Manhattan. Flight 800 was flying at an elevation of about 13,000 feet when it went down.
One clue here is that Flight 800 was not supposed to be flying that low -- it was supposed to be flying at 16,000 feet or more. It was ordered to descend to make way for a northbound USAir flight into Providence, Rhode Island (flying in a path that was perpendicular to Flight 800's path) that was running behind schedule that night and should not have been in the area.
I know I'm just speculating here -- but the facts as I understand them indicate the very real possibility that Flight 800 was brought down simply because a U.S. Navy target drone got too close to it.
When a missle is fired from a ship, it is tracked by radar. Flight 800 would also be tracked by radar. The Navy would know if they shot it down or not. The firing ship would know and so would the other ships near by monitoring the exercise. There is no way that could be covered up. They would have also had a visual on the explosion of the shoot down if that happened.
If there was a missle it would have to have been rather large for a surface launch. However it is not difficult at all to rig a SA7 where you can fire it from another aircraft. All you have to do is mount it under a wing and then extend the wires that gives you a lock on tone to the cockpit along with the firing wire. This is VERY simple to do.