I can see where you got that code from, it is a bit confusing; I don't think the use of a point geometry to scale is particularly helpful in this case and gets confused with the scale centre point.
To modify the code to scale polygons there's only a few changes that need be made. I am hoping you are familiar with Update Cursors in C#.
To scale you must know the point you need to scale about (look at the pictures on the page you got the code from), I am assuming you want to scale in place around the centroid of each features' polygon and that you have ensured that only polygon geometries can get to this section of code.
// assuming you've got an update cursor pFCur (non recycling)
// which has returned feature pFeat on NextFeature
IGeometry pFeatureGeom = pFeat.ShapeCopy;
// Create a point to act as origin at the
// centre of *this* polygon or collection
// of polygons using IArea interface
IArea pFeatureArea = (IArea)pFeatureGeom;
IPoint origin = pFeatureArea.Centroid;
//Cast the feature geometry into the correct Interface
ITransform2D transformScalePoint = pFeatureGeom as ITransform2D;
transformScalePoint.Scale(origin, .5, .5);
// now the object stored in pFeatureGeom is reduced to
// 50% of size scaled around the centre of the feature
pFeat.Shape = pFeatureGeom; // update the features' geometry
pFCur.UpdateFeature(pFeat); // and update the feature
To scale around the centre of each feature I use the Centroid property of IArea, I know it's a bit counter-intuitive to cast to an
IArea to get a centroid but it works..
As ITransform2D is implemented by IPolygon you can cast directly from your features' geometry, which should be a polygon, to the transform 2d interface then scale, and I assume update the features' geometry and store the feature with the updated geometry if that is what you wish to do with the scaled geometry.