Available with 3D Analyst license.
When adding a feature class to a terrain, you need to indicate whether or not it has z-values and, if so, where they come from. In the case of 3D features, the z-values reside with the shape geometry. Indicate the Shape field as the source because this is a reference to the geometry. You can tell whether or not a feature class is 3D by reviewing the General tab of the feature class's Properties dialog box in ArcCatalog. Alternatively, look at the Shape field in a table view of the feature class. If the listed geometry type includes a Z at the end, it is 3D.
You can also use 2D features with z-values stored in an attribute field. It's not uncommon for points to be stored this way. The limitation for geometry types other than points is that each feature must be flat (that is, have a constant height), since there's only one z-value to use for all the vertices. Contours and water bodies are examples of features that can be stored this way. The height source for a 2D feature class like this is the name of the attribute field containing the z-values.
While features used to create a terrain normally have z-values from either their geometry or an attribute, there are exceptions. Clip polygons are the most common of these. They're needed to properly delineate the data area of the surface but are hard to obtain in 3D. Terrains support the inclusion of 2D features by first creating an intermediate surface from all the 3D features and interpolating the 2D feature's heights on this surface. This converts them, in memory, into 3D features that are then incorporated into the surface. When adding a 2D feature class to a terrain dataset, the height source should be set to the keyword <None>.