Nullable Types are NOT Integrated in .NET v2.0
(1) Reading Data: Given a data reader, you can't just assign a value to a nullable type! This one just seems incomprehensible -- nullables obviously already exist in the database, and the .NET SqlTypes support them already, so this seems to be a key integration point. But alas, you simply can NOT assign a value from your data reader to a nullable type. Instead, you still have to explicitly test for DBNull, and handle that case separately:
int? nullInt;
if (dataReader.IsDBNull(index)) { nullInt = null; }
else { nullInt = dataReader.GetInt32(index); }
Note that Julia Lerman observed this before -- see her comments for more viewpoints.
(2) ConvertType: C# does at least support casts to/from regular types and nullable types, and it even gives you a handy way to convert nulls to a default by using the ?? operator, but just try to do any generic type conversions with Convert.ChangeType -- not supported! Again this seems like an obvious integration point, if nullable types are to be "builtin", but once again the new nullable types just feel like an afterthought -- and NOT integrated.
(3) WinForm Controls: The official story is that the data grids support nullable types, but what happens when you try to use a NumericUpDown or a DateTimePicker -- not supported! That's right, once again you'll find that you still have no real integration for nulls, and you'll have to continue resorting to magic values or checkboxes and manual conversions. These controls seem like another obvious place where there should be support for nullables.
All of this lack of integration makes me wonder what the point of nullable types really is? We could always create our own structs that supported the concept of null very similarly, but they lacked the builtin syntax support that C# is including, not to mention they failed to work with data-binding in grids, but the new nullable types simply aren't much better. The one thing they have going for them is that they will at least be a "standard" nullable.
Note that none of these issues prevented me from adding support for nullable types to my O/R Mapper, but I just thought I'd pass along what I observed since I do think the support I discovered was very disappointing.