You can compress it; i'm just not sure how you'd create the .mp file if you can't open it in gpsmapedit. Global Mapper could probably open it but I think the demo blocks a lot of the exporting and that is where I normally grid it.
Now, I will tell you that I've been using postgis to cut all my files down to just the area I want (which is just inside the state boundary in my case). If you are interested in doing that you'll need a solid object that represents your borders. Make sure it is in the same projection as the flowlines.
Then, load the flowline data into postgis and the state into postgis; the command is similar to this:
SELECT i.gid, i.comid, i.fdate, i.resolution, i.gnis_id, i.name, i.lengthkm, i.reachcode, i.flowdir, i.wbareacomi, i.ftype, i.fcode, i.shape_leng, i.enabled, i.mp_type, ST_Intersection(state.the_geom, i.the_geom) As the_geom
INTO cut_nhdflowline
FROM state INNER JOIN nhd_flowline i ON ST_Intersects(state.the_geom,
i.the_geom)
Where your table is called nhd_flowline and the state is loaded into a table called state (or whatever your border is). Then just run that command and then extract it back out. This command WILL take quite some time to run; I have left it to run overnight before for a whole state but it did cut all my files down to just the area I'm working in.