Sachverhalt: A. B._, geboren am 29. Mai 1945, floh im Jahre 1968 aus der damaligen Tschechoslowakei in die Schweiz. In ihrer Heimat hatte sie ein Hochschuldiplom als Ingenieurin in Agrarwissenschaften erlangt. An der Universität Zürich studierte sie Betriebswirtschaft und schloss mit dem Lizentiat in Ökonomie ab. Im Juni 1982 heiratete sie einen rund dreissig Jahre älteren Landsmann, mit dem sie bereits vorher jahrelang zusammengelebt hatte. Sie arbeitete als Bankangestellte und zuletzt im EDV-Bereich als Analytikerin und Programmiererin. Im August 1989 lernte B._, die sich inzwischen von ihrem Ehemann getrennt hatte, den vier Jahre älteren K._ kennen, der anfangs Sommer 1989 Witwer geworden war. Ab Weihnachten 1989 lebte sie mit ihm und seinen drei Kindern zusammen. Sie arbeitete in seiner Firma mit und besorgte den gemeinschaftlichen Haushalt. Am 9. Februar 1990 liess sie sich von ihrem ersten Ehemann scheiden, wobei die Ehegatten gegenseitig auf Unterhaltsbeiträge verzichteten. Wegen einer Drittbeziehung ihres neuen Lebenspartners trennte sie sich vorübergehend von ihm, versöhnte sich dann aber wieder mit ihm. Am 6. Dezember 1991 heirateten B._ und K._. Wenig später - ca. 1992 - gab B._ ihre Mitarbeit im Betrieb des Ehemannes auf. Die Ehe blieb kinderlos. Ab Herbst 1994 entfremdeten sich die Ehegatten zusehends. B._ verbrachte mehrere Monate in ihrer früheren Heimat. Nach ihrer Rückkehr trennten sich die Ehegatten im Mai 1995. Am 29. August 1995 leitete K._ (hiernach: Kläger) den Scheidungsprozess ein. B. Für die Dauer des Scheidungsverfahrens mussten die Gerichte des Kantons Solothurn vorsorgliche Massnahmen treffen. Was den Unterhalt angeht, sprach das Obergericht (Zivilkammer) der Ehefrau lediglich bedarfsdeckende Beiträge zu. Die monatlichen Unterhaltsbeiträge von anfänglich Fr. 3'800.-- wurden den Bedarfsänderungen angepasst, rückwirkend auf 1. Dezember 2000 auf Fr. 3'000.-- herabgesetzt und schliesslich ganz aufgehoben (Urteil vom 24. September 2003; vgl. die Verfahren vor Bundesgericht 5P.71/1997, 5P.189/2002 und 5P.388/2003). C. Während des Scheidungsverfahrens ersuchte die Ehefrau um Einleitung eines IV-Abklärungsverfahrens. Mit Verfügung vom 22. Mai 2003 wurde ihr rückwirkend ab 1. Dezember 1999 eine ganze Invalidenrente zugesprochen, ausmachend ab 1. Juni 2003 Fr. 1'473.-- pro Monat. Der Invaliditätsgrad beträgt 73 %. Das mit der Behinderung theoretisch noch zumutbare Erwerbseinkommen (Invalideneinkommen) wurde auf Fr. 1'831.-- pro Monat beziffert. D. Am 26. November 2002 schied das Richteramt Bucheggberg-Wasseramt (Zivilabteilung) die Ehe der Parteien und regelte die Scheidungsfolgen. Beide Parteien legten gegen das Urteil Appellation ein. Das Obergericht (Zivilkammer) des Kantons Solothurn stellte fest, das erstinstanzliche Urteil sei in Rechtskraft erwachsen, was die Regelung der Verfahrenskosten und die Verweigerung der unentgeltlichen Rechtspflege angeht (Dispositiv-Ziff. 1). Es schied die Ehe der Parteien (Dispositiv-Ziff. 2), wies das Unterhaltsbegehren der Ehefrau ab (Dispositiv-Ziff. 3) und legte das Teilungsverhältnis betreffend Austrittsleistungen der beruflichen Vorsorge neu fest (Dispositiv-Ziff. 4). Es schlug die Parteikosten des erstinstanzlichen Verfahrens wett, auferlegte die Kosten des obergerichtlichen Verfahrens der Ehefrau und verpflichtete die Ehefrau, dem Ehemann für das obergerichtliche Verfahren eine Parteientschädigung zu bezahlen (Dispositiv-Ziff. 5 bis 7). In seinen Erwägungen verwies das Obergericht die güterrechtliche Auseinandersetzung in ein separates Verfahren (E. 5 S. 10) und verpflichtete die Ehefrau, die vom Ehemann geleisteten Parteikostenvorschüsse von Fr. 10'000.-- zurückzuerstatten (E. 6 S. 11 des Urteils vom 24. November 2003). E. Die Ehefrau hat gegen das obergerichtliche Urteil eidgenössische Berufung eingelegt und staatsrechtliche Beschwerde erhoben. Mit der Berufung beantragt sie, das obergerichtliche Urteil aufzuheben und die Sache an das Obergericht zurückzuweisen. Eventualiter begehrt sie einen lebenslänglichen Unterhaltsbeitrag von netto Fr. 2'500.-- und subeventualiter einen Parteikostenbeitrag von Fr. 10'000.-- sowie die unentgeltliche Rechtspflege - beschränkt auf die Parteikosten - für das erstinstanzliche Verfahren. Sie ersucht um unentgeltliche Rechtspflege vor Bundesgericht. Das Obergericht hat auf Gegenbemerkungen zur Berufung verzichtet und deren Abweisung beantragt. Der Ehemann stellt denselben Antrag.