The're useful when the structure of a table evolves over time -- for example, version 1.45 of module foo adds an index for better performance. YOu can change the original definition, but you'll need these additional functions to write the update_x() function.
 
--Jeff
-----Original Message-----
From: John Pulles [mailto:john.pulles@gmail.com]
Sent: Thursday, May 11, 2006 3:57 PM
To: development@drupal.org
Subject: Re: [development] Extend database abstraction layer,to include table creation.

These functions are a useful addition, but I am not sure if the developer that defines tables for his module should need to use them. An alternative for the install system could be that the structure of the tables is defined in a xml file that can be validated before it is processed by the install system.