The solution is to use Unicode characters in a font that is present in all Windows versions since Windows 98 according to Microsoft — “Lucida Sans Unicode.” CSS styling can now be applied to the checkbox character as with any text. Tested in IE 5.0+, Firefox 1.06 and Opera 8. This technique needs script to correctly interpret user actions so it would be appropriate only in controlled application environments.
Tests by CSS-Discuss list fellow members show that Unicode support is not as dependable as desired. Here is an IE-only solution which is very reliable, using the Wingdings font that is present in every default Windows system.