I've explored another approach to this which uses the object model to set the ReadOnlyField property (see: http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spfield.readonlyfield.aspx).
SPList list = web.Lists["Your list name"]; SPField guideline = list.Fields["Guideline"]; guideline.ReadOnlyField = true; guideline.Update();
Once this has been done to a field, it will no longer show up on any forms including the new item and edit item forms. If you ever needed to change the value you would have to set the ReadOnlyField property back to false (presumably with code), change the value, then set the property back to true. Furthermore, I tested to see what happens when you try to change the value through code with this property set to true. It does not generate any exceptions or errors, it simply discards the new value.