Literal or Figurative Coldness... and More
Let's start with the weather, since that's the easiest. To say it's cold, Spanish uses the verb hacer in the third-person singular (as if Mother Nature were the un-stated subject): Hace frío. For most readers, this is probably review. Like many weather phenomena (except forms of precipitation, which all have their own verbs), the verb hacer is used with a noun (hace viento; hace sol, etc.) Just how cold it is can be nuanced by putting mucho or poco between hace and the noun frío (as well as the other nouns): Hace mucho frío or Hace poco frío (which might also just be expressed by saying Hace fresco).
When one speaks of how he or she feels, tener or sentir is used. Both of these verbs are irregular in the present and in the preterite (one of the two simple past tenses in Spanish). Thus, you could say either Tengo frío (I'm cold) or Siento frío (I feel cold). To ask a friend how he or she feels, you could ask either ¿Tienes frío? (Are you cold?) or ¿Sientes frío? (Do you feel cold?).
While you never use ser with frío to speak of the weather, you definitely do use it when speaking of people figuratively (to say they are distant or stand-off-ish) or to state what the nature of something is. Of course, since frío is then an adjective, it will agree in gender and number with the noun(s) it modifies:
Desafortunadamente, mi tío es frío (Unfortunately, my uncle is cold).
Mis tías no son frías (My aunts are not cold).
La nieve es fría (Snow is cold).
When speaking of food or drink, using ser indicates that it is normal or expected that the food is cold (or hot, as the case may be). If estar is used, it shows the condition or state of the food with respect to its temperature:
La sopa está fría (The soup is cold). This shows that it has become cold - and shouldn't be.
El gazpacho es frío (Gazpacho is cold). Gazpacho is a summer favorite in southern Spain and is a cold soup. It is normal for it to be so, hence ser simply states what one expects.