This answer begins with an easily understood fact and example followed by a more complicated example serving to illustrate why convenient answers to dan232's question can be challenging to find.
FACT: If the 0-dimensional space X is T1, then X is T2.
Pf. Fix distinct points x and y. Since X is T1, X\y is open, and now obtain a clopen set U such that x is in U, and U is a subset of X\y. Note U and X\U are the desired open sets which show X is T2.
Example 0: The indiscrete topology on a two point space shows a 0-dimensional space need not be T2.
Here is a more complicated example which answers Valerio's question, and shows a variety of nice properties can be inadequate to ensure that a T1 space is T2.
Example 1: X is a 1-dimensional space which enjoys the following properties:
Property 1: X is compact and dim(X)=1
Property 2: Every compact subspace of X is a closed subspace of X (and in particular X is T1).
Property 3: There exists a point p in X such that Y=X\p is completely metrizable, (and in particular Y is open and dense in X).
Property 4: X is locally contractible.
Y is the union of countably many rays joined at a common point 0, and X is the one-point-compactification of Y (in the sense of Alexandroff).
To be precise, to obtain Y, consider the subspace of infinite rays emanating from 0 and passing through the standard `unit basis vectors' e1,e2,.... in the familiar Hilbert space l2 of square summable sequences of real numbers. Notice Y is a closed subspace of l2, and hence Y is completely metrizable. By definition Y will be an open dense subspace of its one point (Alexandroff) compactification.
To obtain X, we create the special point at infinity p, and if U is a subset of Y union {p} such that p is in U, then U is open iff Y\U is a compact subspace of Y.
In particular, since Y is not locally compact at 0, X, the one point compactifcation of Y is not T2. However X enjoys the aformentioned listed properties.