So let's say I go to Bitaddress.org, do the offline thing (namely, download the HTML code, run it on an clean machine). I use the BIP38 encryption and I use a decent passphrase with a couple of special characters.
Is this good for cold storage?
Yes, provided your password has sufficient entropy. The minimum entropy you'll need depends on your situation:
- Can you easily afford to lose your cold storage?
- Do you live among people you trust or do you travel/backpack a lot?
You'll probably want between 40 and 100 bits of entropy.
I strongly advise against thinking up your own password. Rather than digging through your mind for existing information; generate random information and memorise it. It's not difficulty to rack up provable entropy this way. To give you an idea, here are some examples each of which had about about 64-bits of entropy (of course, don't use these precise examples):
A uniformly random 20-digit natural number (about 66.3 bits):
77167661296005852823
14 uniformly random lower-case letters (about 65.8 bits):
tefdszwmhuwyso
10 uniformly random letters (upper + lower), numbers, and 33 common symbols (about 64.1 bits):
EVl2;C?m=[
6 uniformly random words from a list of 2048 simple words with a 2-bit checksum (64 bits, BIP0039):
scissors artwork burger catch hospital august
I personally prefer the latter for memorability but you may disagree.
There are actually tools out there that will allow you to come up with a stronge nough password where you don't need to be paranoid about someone ever bruteforcing this:
http://www.passwordmeter.com/A tool which should be used with some care. Notice for example that the poor password "HelloWorld!!11" scores 100%.
Bear in mind too that these tools are targetting a different use case, one with much weaker security needs.