Sachverhalt: A. Die 1953 geborene V._ meldete sich im Dezember 2002 bei der Invalidenversicherung zum Rentenbezug an. Nach Abklärungen wies die IV-Stelle des Kantons Zürich mit Verfügung vom 17. April 2003 das Leistungsbegehren ab. Dagegen erhob V._ Einsprache. Daraufhin liess die IV-Stelle die Versicherte in der Universitätsklinik X._, Abteilung Orthopädie, untersuchen und begutachten (Expertise vom 29. Dezember 2003). Mit Einspracheentscheid vom 29. März 2004 bestätigte sie die rentenablehnende Verfügung. In Gutheissung der Beschwerde der V._ hob das Sozialversicherungsgericht des Kantons Zürich mit Entscheid vom 31. März 2005 den Einspracheentscheid auf und wies die Sache an die IV-Stelle zurück, damit diese im Sinne der Erwägungen verfahre und hernach über den Rentenanspruch neu verfüge. Am 14. September 2005 wurde V._ vom orthopädischen Chirurgen Dr. med. S._ untersucht und begutachtet (Expertise vom 17. September 2005). Mit Verfügung vom 12. Oktober 2005 verneinte die IV-Stelle erneut einen Rentenanspruch, woran sie mit Einspracheentscheid vom 28. Februar 2006 festhielt. B. Die Beschwerde der V._ wies das Sozialversicherungsgericht des Kantons Zürich mit Entscheid vom 28. November 2007 ab. C. V._ lässt Beschwerde in öffentlich-rechtlichen Angelegenheiten führen mit dem Rechtsbegehren, der Entscheid vom 28. November 2007 sei aufzuheben und es sei ihr eine ganze Invalidenrente zuzusprechen. Die IV-Stelle beantragt die Abweisung der Beschwerde. Das Bundesamt für Sozialversicherungen verzichtet auf eine Vernehmlassung.