Thanks to everyone who commented, especially Pedro! Here is a breakdown of the process. Hope this is informative for anyone trying to learn hard surface modeling!

These are in-progress screen shots of the riot soldier. I've numbered each step in order to walk you through my process. There are probably a zillion different ways to create a model like this, but this is my workflow.
1. I had an old human figure I was able to use as a reference. I appended a sphere and converted it to dynamesh. Using the move brush and periodically updating the dynamesh,I created a very rough mesh to cover the head, torso, and legs. I used a similar method to cover the arms. I did the arms separately to make working on the large overhanging shoulder pads easier.
2. Once the rough mesh was in place, I started blocking out the large forms. Don't get too far ahead on one part before completing the rest of the model to the same level. Thistakes some self control, but the point is to get everything blocked out. It's normal to have to make major adjustments during this phase, so keep it loose! I use move, dam standard, flatten with a tight fall off and the square alpha, and clay tubes for this phase. You may also notice the shoulder and leg armor are mirrored here, though in the final model they are different. I repeated the process for the unique geo later on in the process.
3. This is what the finished block out looks like. Nothing is carved in stone, the detail is loose, but the overall proportions are resolved, and I can see how everything is going to fit together. At this point, there are only three separate subtools. Two dynameshes (arms and everything else) and one reference mesh. This is arguable the most difficult part of the entire process, because its where the bulk of the sculpting happens.
4. Once the base mesh is done, its time for retopology. I go into more detail about this process a little further down. I retopo each piece of armor with skin thickness, crease the correct edges, and subdivide with a crease level around 3 or 4, depending on how sharp I want the edges. I make a polygroup out of each section of the original dynamesh geo as I finish and hide it. This helps keep the scene clean. Some work flows call for using extraction instead of retopology, but in my experience extracted geo is messy, way heavier than it needs to be, and precisely clipping irregular curved edges is a lot harder to control than creasing a retopolgized low poly mesh. Also, doing the retopology up front saves doing it later. You might not be able to use all of it in the low poly, but you might save yourself some work down the road.
5. This is the geo after subdividing. Notice how bland it looks. I don't add any detail until the whole thing is done. It's important to finish each phase completely before moving forward. This prevents loosing work if you need to make big changes.
6. This is the final model. It might look like a pretty big step between 5 and 6, but its really just the same thing over and over again. For the hard surface stuff, its just retopo, crease, subdivide. To add smaller panel work, I like to mask off sections and apply a little inflate from the deformations submenu. Eat3D has a good tutorial on hard surface modeling that include some really cool mech stamps, like bolts and latches. I use the heck out of them : ) While the vast majority of the geo is built completely in zbrush, some of it was built in 3DS Max. These include the grenades, the shoulder light, the pistol and holster, and the knife. It was all detailed in zbrush. Generally, if a thing can be cobbled together using primitives like cylinders, I'll do it in Max. For the pouches, I deconstructed the polysphere tool (located in the lightbox) down to its cube level. Then I creased it and started sculpting. For the cloth areas, there's nothing fancy. It's just good old fashioned sculpting. I find the standard brush with lazy mouse to be pretty effective at making folds in cloth.

1. This is the base retopo. Notice how light it is. The resulting geo will be easy to manipulate, and not overly dense at higher subdivision levels.
2. I set the preview density to 1 so the resulting mesh matches my retopo exactly. I guess there's some reason zbrush defaults to two, but I have no idea what it is.
3. The next setting is to give the geo some thickness.

This is resulting polymesh.
4. Using the selection lasso (cntl + shft) , I'll hide the geo I don't want to share a smoothing group and
5. hit the crease button. It works by creasing the exterior edges of whatever geo is visible. Be careful though - if you have any faces that exceed the angle set in the CTolerance slider, they'll crease too. You may need to adjust the value higher. If no geo is hidden, it will autocrease the mesh according to the CTolerance slider, but for a mesh as simple as this, I just do it by hand. Zbrush will automatically crease the edges of the inside, outside, and depth faces.
6. These are my crease groups.7. The next thing you need to do is set the crease level to 3 or 4. What this does is tell zbrush to preserve the creased edges for that number of subdivisions. The higher the number, the tighter the edge.8. This is the resulting mesh.

Now for some detail!
9. Mask off an area to make a lip, panel work, or whatever. You may need to smooth and sharpen the mask to even it out. You can do this in the masking menu. Use the mask curve to draw the mask, so you get nice clean lines.
10. Go to the deformations submenu in the tool menu and enter in a value that works. I get pretty good results with 4 or 5. It doesn't work that well with negative values in the corners, but you can get a similar effect by inverting the selection and inflating the other part.
11. Add some mech stamps and call it good!

This kind of model takes a lot of patience. This model has about 110 subtools and took about 90 hours to complete. I still need to do the low poly, UVs, and textures (more on that later). If you're new to this workflow, start with something simple. Just make some panels on a sphere or something. Once you get comfortable with the overall process, you can begin to tackle more ambitious projects. Good luck!