Hate to quote myself, but here's something I posted 5 years ago in another forum.
Why does my engine take so long to warm up?
Q: Why does my 335's engine take so long to warm up?
A: Actually it doesn't take any longer than any other engine. It just seems to take longer because you are being informed by the much more important engine oil temperature. Most temperature gauges tell you the temperature of the coolant ("antifreeze") in the cylinder head. This is NOT what you need to know, and here's why BMW engineers want you to know the oil temperature.
It's an old engine builder's maxim that cylinder heads make the power, the block only gets it to the wheels. It's the cylinder head which contains the compressed air/fuel mixture, and where that mix is ignited generating very high temperatures with little heat transfer area. As a result the head heats up much faster than the more massive block.
Cylinder head temperature is a very poor indicator of the block temperature! There are many rotating and sliding components in the block which may not yet have expanded to the proper size for optimal wear, and the minimization of stress. Yes, you can be getting lots of heat in the passenger compartment, maybe even defrosting that overnight ice accumulation. But the block can still be so cold that frost will be on the block's exterior.
The oil temperature is a much better indicator of the overall engine temperature. Your engine is NOT 'warmed up' until your oil temperature is in the correct range. Then you can be sure that your crankshaft has lengthened to the point where thrust bearing strain is reduced, that pistons are optimally sized to the cylinders, that journal clearances are dead-on nominal, and cylinder head gasket clamping force is correct. Then go ahead and drive it as it was designed to be driven, knowing that your oil temperature is telling you what you really need to know.