RadCheckBox renders as a <button> HTML element, so if the styles and scripts that apply visual appearance and functionality on it are not loaded, you will get a button. This happens when the requests for those resources fail to return. You can use the browser dev toolbar to see if this is the case.
Considering you are using a RadScriptManager, there are two common reasons why this may happen:
I also advise that you ensure your web.config contains the needed handler registrations and that they are correct. You can copy them from this section (Example 1): http://docs.telerik.com/devtools/aspnet-ajax/general-information/web-config-settings-overview#mandatory-additions-to-the-webconfig.
If you are using RadCheckBox and RadButton on the same page, make sure the RadButton RenderMode is set to Lightweight: http://docs.telerik.com/devtools/aspnet-ajax/controls/checkbox/troubleshooting/distorted-appearance.
As for the difference between RadButton and RadCheckBox—RadButton is a control that tries to do all at (buttons, link buttons, radio buttons, image buttons, checkboxes) and thus is difficult to configure and setup properly. This is why we created standalone controls for this purpose (RadPushButton, RadLinkButton, RadImageButton, RadCheckBox and we are now working on a RadioButton+RadioButtonList). They are easy to setup and configure and also default to the lightweight render mode which makes use of CSS3 and font icons to make them more flexible and easier to customize.
Thus, I advise you use RadCheckBox instead of RadButton.
I hope this explains the situation. Let me know if you have further questions.
Do you need help with upgrading your ASP.NET AJAX, WPF or WinForms projects? Check the Telerik API Analyzer
and share your thoughts.