From what I've gathered you've got a list of zip codes and their respective coverage status.
Get the Shapefile
First off you will need to source something called a 'shapefile' which defines the boundaries of the zip codes that you have. A simple google search brings up the following page: http://www.census.gov/geo/www/cob/z52000.html (...assuming you're American)
Note that if your analysis spans multiple states, it would be more convenient to continue searching for a shapefile which spans the continental USA. Likewise, you could search for a more recent dataset, but my guess is that Zip boundaries don't change considerably enough to change your results.
Get the Software
Once you've got the shapefile, note a shapefile is actually many files (.shp, .dbf, .shx ...), you'll need an application to open it in. QuantumGIS (QGIS) is the most common FOSS alternative to the commercial packages. In addition, this site has tracklog of well answered questions given the handful of advanced users who frequent here. New users are reccomended to download the latest version here.
At this point, it's assumed you have the following:
- Shapefile of Zip Code Areas
- Table of Information about Zip Code Areas
- Spatial Application to Process 1 and 2
Given you've only obtained one spatial file, there's little point in getting into the details of Coordinate Systems, and Projections. You should be aware, however, that these things exist and are the root cause of many problems between multiple datasets.
What to Do?
What you need to do at this point is associate the two sources of data that you have. In spatial/database terms this is simply called a 'join'. The image below provides a working example of rainfall per county.
KEY POINT HERE: Ultimately you will want to join every record in your shapefile to every record in your coverage data. The link between the two files will be the zip code field in each data source.
Do The Work
Have a look at the following tutorial on joining data in QGIS which links data at a state level:
(I'm happy to fill in the gaps here if you have issues, but I don't want to reinvent the wheel considering the depth of your question)
Once you've created a join you need to give it context by applying symbology. I would imagine that 'good' coverage areas will be green, while 'bad' coverage areas would be 'red'.
Again, have a look at this tutorial for vector symbology in QGIS.
As requested, I believe I provided enough information above to get you started. Please have a look at the QGIS manual if you have further questions about symbology, output and printing. For anything else you're stuck on, gis.se is here for your questions.
If my information isn't enough for you to get going, by all means please comment. Otherwise, here are some other sources of general instruction for the software.
QGIS User Guide
Chapter 2 - Managing your data
Joining Data from an ESRI perspective