A medida que el estado de vista de la solicitud se pasa de vuelta al navegador como una representación serializada incrustado dentro de la página HTML generada tiene sentido que sólo los objetos serialisable se pueden colocar dentro de ella (de lo contrario puede fallar para representar lo que contiene). Ese estado de vista se deserializa en la próxima solicitud.

Si está utilizando POCO de marcándolos como serialisable debería ser suficiente trivial. Hay un excelente recurso en la comprensión de cómo funciona el estado de vista, lo que es etc aquí:
http://weblogs.asp.net/infinitiesloop/archive/2006/08/03/Truly-Understanding-Viewstate.aspx
Se entra en el ciclo de vida del estado y da detalles sobre gran parte de su implementación y uso de la prospectiva de un desarrollador.
La ASP.NET (predeterminada) serializa simplemente el trabajo de esa manera. Existen otras técnicas de identificación de serialización (por ejemplo, DataContracts), pero solo los tipos Serializable-Anotado son compatibles con LosFormatter (más antiguo) y ObjectStateFormatter. (Aunque, ISerializable también podría funcionar, pero nunca lo he probado). –