A sketch of one possible approach is presented below:
\documentclass[12pt]{article}
\usepackage{tikz}
%scalebox needs graphicx
\usepackage{graphicx}
%settototalheight uses calc
\usepackage{calc}
%define some lengths
\newlength\nodeheight
\setlength{\nodeheight}{1cm}
\newlength\nodewidth
\setlength{\nodewidth}{3cm}
\newlength\myboxheight
\begin{document}
%create a box which will contain text you want to put in
\newsavebox{\mybox}
\sbox{\mybox}{\parbox{\nodewidth}{Ceterum censeo Carthaginem esse delendam}}
%measure its height
\settototalheight\myboxheight{\mybox}
%calculate the ratio of box’s height and available space in node
\pgfmathparse{\myboxheight/\nodeheight}
\centering
\begin{tikzpicture}
%resize your box to fit inside node; keep width-to-height ratio using !, and resize height as necessary
\node [rectangle, minimum width=\nodewidth, minimum height=\nodeheight, draw=black] {\resizebox{!}{\pgfmathresult\nodeheight}{\usebox{\mybox}}};
\end{tikzpicture}
\bigskip
%here is the original box, which is too big:
\usebox{\mybox}
\end{document}
The result:

It is far from ideal -- note that text could be bigger if I were to appropriately resize just the text and not the box containing it.