In TikZ, this is basically the difference between using transform shape
and not using it. If you use it, the texts get rotated, otherwise they don't.
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[nodes={circle,draw,fill=red!20,font=\sffamily,inner sep=1pt}]
\draw (0,0) node{T} -- (80:2) node{O} -- ++(80:2) node{S};
\end{tikzpicture}
\bigskip
\begin{tikzpicture}[nodes={circle,draw,fill=red!20,font=\sffamily,inner
sep=1pt},rotate=-90]
\draw (0,0) node{T} -- (80:2) node{O} -- ++(80:2) node{S};
\end{tikzpicture}
\bigskip
\begin{tikzpicture}[nodes={circle,draw,fill=red!20,font=\sffamily,inner
sep=1pt},rotate=-90,transform shape]
\draw (0,0) node{T} -- (80:2) node{O} -- ++(80:2) node{S};
\end{tikzpicture}
\end{document}

To just produce the figure, you could use
\documentclass{article}
\usepackage{tikz}
\usepackage{eqparbox}
\newbox\nodebox
\tikzset{equal size/.style={execute at begin
node={\setbox\nodebox=\hbox\bgroup},
execute at end
node={\egroup\eqmakebox[#1][c]{\copy\nodebox}}}}
\begin{document}
\begin{tikzpicture}[nodes={equal size=S,
circle,draw,fill=red!20,font=\sffamily,inner sep=1pt}]
\draw (0,0) node{T} -- (2.5,0) node{[O]} -- ++(2.5,0) node{S};
\end{tikzpicture}
\end{document}

Note that there are no hard coded distances yet the nodes have the same size.