Because the state maintained by the process is destroyed when a process terminates it is neccessary to persist any data which must suurvive termination to non-volitile storage such as the hard disk and serialisation is one way to achieve this.
Serialization is popular because it creates an abstraction which allows the application to save and restore data without neccessarily having to be concerned with the specifics of how the data is to be stored or retrieved.
While ultimatly the information must end up in non-volitile storage there are other methods of persisting the information which have different benefits and drawbacks.
The main attraction of serialization is that one needs not be concerned with the specifics of the storage as this is determined by reflection on the members of the object being persisted, however this reflection can also be seen as a disadvantage with respect to the often large performance hit incurred by reflecting over a type, further to this it is quite common for objects to be persisted to XML, the parsing of which can be quite intensive in terms of resource usage.
The serialization API supports different formatters such as the binary formatter which typically generates much smaller files, although I don't think the output of this formatter is garenteed to be consistant accross windows versions.
One other storage option is the registry API which is often faster then generating or parsing XML, however it's use is somewhat discouraged for new applcations
I hope this has been somewhat helpful, I can't help but feel I may have rambled just a little