This is a short script that I created in response to a blender.stackexchange.com question. What it allows you to do is convert the curve to a mesh object and apply that data to a mesh object, without loosing the original curve. You can then update the curve and by clicking "Update Mesh" all that new data is applied to the mesh object. Here is how it works:
1. Add a curve and make the bevel "Full", add depth and resolution
2. Add a mesh object like a cube, or click "Add Mesh Object" under panel in toolbar
3. Go to View 3D > Tools > Tools > Curve Conversion
4. Select curve object
5. Click "Update Mesh"
and there you go, you now have the curve's mesh equivalent. You can edit the curve as much as you would like and then just click "Update Mesh". The "Respect Scale" option copies the scale from the curve to the mesh object. This way if you change the scale on the curve that scale is applied as well to the mesh object.
Materials no longer disappear on updating and are transferred correctly.
Copied the changes that JuhaW did into the main version. You can now Propagate Changes while in curve edit-mode.