Some of my recent work revolved around working with Cabinet files. They're so common, you think this would be simple. In some ways it is, in some ways it isn't.
Let's say you're not a developer. You're simple a user who wants to compress files into a CAB.
From within Windows:
Start->Run>cmd, then enter "Makecab"
And there you go. Easy, right?
You can also leverage IExpress. Start->Run->IExpress. Now you've got a wizard. Cool.
What if you're a software developer and you want to programmatically create a CAB?
If you're a masochist, you could roll your own implementation using the Cabinet.dll API in windows.
My preferred approach would be to download and install the Wix toolset, create a C# project with references to Microsoft.Deployment.Compression and Microsoft.Deployment.Compression.Cab, and just use the CabInfo class. See example here.
These are all techniques that create a simple CAB file. If you want to compress files that span multiple CABs (because of the 2.0 GB limit) or if you want self-extracting CABs, that's a whole other ball game...